diff --git a/docs/Notes.txt b/docs/Notes.txt new file mode 100644 index 00000000..05e3af16 --- /dev/null +++ b/docs/Notes.txt @@ -0,0 +1,22 @@ +Per Mina + - per gestire l'inattività su una sessione usare + acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); + e + nell'implementazione del IoHandlerAdapter ridefinire il metodo + public void sessionIdle( IoSession session, IdleStatus status ) throws Exception + + + +Glossario: + + QOS: presente solo per i messaggi PUBLISH, definisce 3 livelli + QoS0: at most once, cioe' viene notificato al piu' uno (il che' significa che potrebbe anche non essere notificato) equivalente a messaggi non persistenti di JMS + QoS1: at least once, delivery equivalente ai messaggi persistenti di JMS + Q0S2: exactly once, delivery assicurato equivalente ai messagi persistenti di JMS + DUPS_OK_ACKNOWLEDGE + + + RETAIN: se true dice di persistere il messaggio dopo esser stato notificato a tutti i sottoscritori del topic. Se in un secondo momento un cliente si sottoscrive ad un messaggio pubblicato con RETAIN = 1 allora anche il messaggio di notifica dovrà avere RETAIN = 1, altrimenti non accade nulla. I messaggi notificati al momento del PUBLISH non hanno flag RETAIN = 1 serve solo per dire ai posteri che il messaggio che stanno ricevendo non è "live". + Un server PUO' eliminare un messaggio marcato con RETAIN se ne arriva un'altro sullo stesso topic con lunghezza = 0 e RETAIN = 1. + + CLEAN SESSION: è un flag disponibile per il solo messaggio di CONNECT.Se = 0 allora il server DEVE memorizzare(mantenere) le sottoscrizioni del client dopo che si sia disconnesso. Questo prevede di continuare a salvare i messaggi QOS1 e QOS2 per i topic sottoscritti cosicche' possano essere consegnati quando il client si riconnetterà. Il server DEVE inoltre mantenere lo stato dei messaggi che stavano per essere consegnati prima che la connessione fosse persa. Questa informazione DEVE esser mantenuta finchè il client si ricconnetta. Se flag = 1 allora il server DEVE scartare qualsiasi informazione precedentemente memorizzata sul client e trattare la connessione come "pulita". Il server DEVE anche scartare qualunque stato qualora il client di disconnetta. + Solitamente, un client opererà o in un modo o nell'altro. La scelta dipenderà dall'applicazione. Un sessione cliente pulita non riceverà informazioni vecchie e DOVRA' ri-sottoscriversi ogni volta che si connette. Una sessione cliente NON pulita non perderà nessun messaggio di tipo QoS1 o QoS2 che sia stato pubblicato mentro esso era disconnesso. I messaggi di tipo QoS0 NON vengono mai salvati. Un server deve fornire un meccanismo di amministrazione per la pulizia delle informazione salvate su di un client e che possa essere usata qualora si sappia che il client non si riconnetterà.