Hello Ian, and all, 
     
    I'm trying to wrap up the next rev of the C++ library, and have one
    nagging issue that I believe I inquired about last time. In the C
    library, the MQTTAsync_send() and MQTTAsync_sendMessage() functions
    claim: 
    An MQTTAsync_token
      is issued when this function returns successfully. 
     
    I can't find how to get this MQTTAsyncToken value until the callback
    which happens after the message is delivered. 
     
    The problem is that, like the Java client, the C++ client has a
    publish() function which returns a token, and that token is supposed
    to know the message ID of the outgoing packet. It is reported via: 
    int     itoken::get_message_id(); 
     
    So, to implement this I need the Message ID (MQTTAsyncToken) as soon
    as the message is queued - before returning from the publish()
    function. 
     
    It seems that the latest version of the ...err... asynchronous mode
    of the synchronous library has everything I would need to publish
    messages, since the publish functions take a pointer to an MQTTClient_deliveryToken
    int MQTTClient_publish(MQTTClient handle, char
        *topicName, int payloadlen,  
                               void *payload, int qos, int retained, 
                             MQTTClient_deliveryToken
        *dt) 
       
    That would be perfect!  I would switch over to the
    synchronous library, but there are not corresponding asynchronous 
    versions of connect() and disconnect(). 
     
    If those existed, I (we?) wouldn't need the asynchronous library at
    all. 
     
    Thanks, 
    Frank 
  
 |