Skip to content

Instantly share code, notes, and snippets.

@pastcompute
Last active March 26, 2016 00:24
Show Gist options
  • Save pastcompute/9170c13a1aa9bf5e4d9b to your computer and use it in GitHub Desktop.
Save pastcompute/9170c13a1aa9bf5e4d9b to your computer and use it in GitHub Desktop.
Some MQTT-SN flows
             Client              Gateway               Broker
                |                   |                    |      
   PUBLISH() -->| --- SERCHGW ----> |                    |  
                | <-- GWINFO  ----- |                    |  
                | --- CONNECT ----> |                    |  
                | <--WILLTOPICREQ-- |                    |  
                | --- WILLTOPIC --> |                    |  
                | <-- WILLMSGREQ -- |                    |  
                | --- WILLMSG ----> | ---- CONNECT ----> |(accepted)     
                | <-- CONNACK ----- | <--- CONNACK ----- |   
                | --- PUBLISH ----> |                    |  
                | <-- PUBACK  ----- | (invalid TopicId)  |  
                | --- REGISTER ---> |                    |  
                | <-- REGACK  ----- |                    |  
                | --- PUBLISH ----> | ---- PUBLISH ----> |(accepted)  
                | <-- PUBACK  ----- | <---- PUBACK ----- |    
                |                   |                    |    
                //                  //                   //      
                |                   |                    |          
 SUBSCRIBE() -->| --- SUBSCRIBE --> | ---- SUBSCRIBE --> |     
 [set Callback] | <-- SUBACK ------ | <--- SUBACK ------ |    
                |                   |                    |    
                //                  //                   //    
                |                   |                    |    
                | <-- REGISTER ---- | <--- PUBLISH ----- |<-- PUBLISH  
[exec Callback] | <-- PUBLISH  ---- |                    |  
                | --- PUBACK   ---> | ---- PUBACK  ----> |--> PUBACK  
                |                   |                    |  
            
             Client              Gateway               Broker
  user coding   |                   |                    |      
                |                   |                    |    
   PUBLISH() -->| --- SERCHGW ----> |                    |  
                | <-- GWINFO  ----- |                    |  
                | --- CONNECT ----> |                    |  
                | <--WILLTOPICREQ-- |                    |  
                | --- WILLTOPIC --> |                    |  
                | <-- WILLMSGREQ -- |                    |  
                | --- WILLMSG ----> | ---- CONNECT ----> |(accepted)     
                | <-- CONNACK ----- | <--- CONNACK ----- |  
                | --- SUBSCRIBE --> | ---- SUBSCRIBE --> |     
 [set Callback] | <-- SUBACK ------ | <--- SUBACK ------ |   
                | --- REGISTER----> |                    |  
                | <-- REGACK  ----- |                    |  
                | --- PUBLISH ----> | ---- PUBLISH ----> |      
                | <-- PUBREC  ----- | <---- PUBREC ----- |    
                | --- PUBREL  ----> | ----- PUBREL ----> |    
                | <-- PUBCOMP ----- | <---- PUBCOMP----- |        
                |                   |                    |        
                //                  //                   //      
                | --- PINGREQ ----> | --- PINGREQ ---->  |         
                | <-- PINGRESP----- | <-- PINGRESP-----  |                    
                //                  //                   //    
                |                   |                    |    
                | <-- REGISTER ---- | <--- PUBLISH ----- |<-- PUBLISH  
                | --- REGACK  ----> |                    |  
[exec Callback] | <-- PUBLISH  ---- |                    |  
                | --- PUBACK   ---> | ---- PUBACK  ----> |--> PUBACK  
                |                   |                    |  
                //                  //                   //       
                |                   |                    |    
DISCONNECT() -->| ---DISCONNECT---> |                    |  
                | <--DISCONNECT---- |                    |     
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment