Salve a tutti,
come brevemente descritto nel titolo il mio problema consiste nell'inviare dei byte per chiedere la connessione ad un server tramite il protocollo MQTT, in pratica dopo aver stabilito la connessione TCP con il server di cosm, attraverso il metodo connectTCP della libreria InetGSM, dovrei inviare una richiesta di connect per questo protocollo, in pratica dovrei inviare questo:
byte[] connectMessage = {0x10 //Connect
, 0x0C + 0x04 //Remaining Length
, 0x00 //0
, 0x06 //6
, 0x4d //M
, 0x51 //Q
, 0x49 //I
, 0x73 //S
, 0x64 //D
, 0x70 //P
, 0x03 //Protocol version = 3
, 0x02 //Clean session only
, 0x00 //Keepalive MSB
, 0x3c //Keepaliave LSB = 60
, 0x00 //String length MSB
, 0x02 //String length LSB = 2
, 0x4d //M
, 0x70 //P .. Let's say client ID = MP
};
byte[] publishMessage = { 0x30 //Publish with QOS 0
, 0x05 + 0x05 //Remaining length
, 0x00 //MSB
, 0x03 //3 bytes of topic
, 0x61 //a
, 0x2F ///
, 0x62 //b (a/b) is the topic
, 0x48, 0x45 , 0x4c , 0x4c, 0x4f //HELLO is the message
};
sono dei codici esadecimali che indicano al server che voglio instaurare una connessione con protocollo MQTT, esso mi dovrà rispondere con un'accettazione, che dovrò leggere, e poi effettuare il publisch, quindi inviare il secondo set di byte.
Utilizzo i byte perchè ho preso i valori direttamente dalla spiegazione di questo nuovo protocollo, ma se qualcuno mi può consigliare qualche altro metodo è sempre ben accetto.
In tutti i casi il problema principale è spedire questi dati al server.
Qualcuno può aiutarmi?