Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema con MQTT

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    8

    Problema con MQTT

    Salve, mi sto
    confrontando per la prima volta con il protocollo MQTT.
    Ho trovato molto
    materiale utile in rete, come ad esempio il codice dei comandi
    scritto in C. Ho notato però che non è completo, ovvero mancano
    delle funzioni. Questo non è un problema, a parte per la funziona
    che “praticamente” invia il pacchetto al server. Faccio un
    esempio:
    int mqtt_disconnect(mqtt_broker_handle_t* broker) {

    uint8_t packet[] = {

    MQTT_MSG_DISCONNECT, // Message Type, DUP flag, QoS level, Retain

    0x00 // Remaining length

    };

    // Send the packet
    if(broker->send(broker->socket_info, packet, sizeof(packet)) < sizeof(packet)) {

    return -1;

    }

    return 1;

    }


    Questa è la
    funzione per disconnettersi dal server. La mia domanda è:
    la funzione sotto il commento “//send the packet”, da quel che ho capito si incarica
    di inviare il messaggio di disconnessione al server, ma non ho
    trovato da nessuna parte come è scritta. Qualcuno mi può aiutare?
    Grazie a chiunque risponderà.

  2. #2
    Purtroppo hai omesso dei dati essenziali. Di che codice specifico stai parlando? Dove hai trovato codesta implementazione? Sei sicuro che il codice sia incompleto, e se sì, per quale motivo?

    Le risorse primarie relative a MQTT, che presumibilmente conosci già a menadito, includono il sito ufficiale, la documentazione su IBM DeveloperWorks e una serie di implementazioni opensource, presumibilmente complete, come ad esempio Paho.

    Personalmente ho implementato da zero il firmware necessario per tre distinte piattaforme embedded target molto diffuse, usando un unico ambiente di sviluppo commerciale (IAR) e basandomi unicamente sulla specifica pubblicata, ma trattandosi di un progetto lavorativo relativamente recente non posso fornire in alcun modo né sorgenti né ulteriori dettagli. Comunque trattasi di un protocollo decisamente elementare, a livello di SNAP o poco più, e sono certo che in rete esistano numerose implementazioni valide, simili al già citato Paho che - all'epoca - avevo distrattamente guardato prima di iniziare lo sviluppo.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    8
    Ti ringrazio per la risposta.
    Ho trovato questo pezzo di codice a questo link:
    https://github.com/menudoproblema/libemqtt
    è un codice C per sistemi embedded (da quanto è scritto almeno), ma ho il sospetto che certe funzioni siano inserite nelle librerie che sono citate all'inizio, e non specificate, quindi non saprei come gestire il "send" in senso pratico, cioè io ho un comando scritto e funzionante, ma non so come far comunicare il client col server, so che la connessione è d tipo TCP/IP ma non ho mai avuto a che fare con codice di comunicazione via internet. Tu conosci qualcosa di già scritto open source? Grazie mille

  4. #4
    Prova a guardare sul già segnalto sito di Paho: offrono i sorgenti completi per vari tipi di implementazione, sia basati su OS mainstream che per ambienti embedded (in particolare FreeRTOS). In generale, MQTT è comunque orientato a reti non TCP(IP, es. mesh BlueTooth.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    8
    Ti riferisci a questi?
    http://git.eclipse.org/c/paho/org.ec...ded-c.git/log/
    Perché mi sembrano scritti in un linguaggio che non conosco, mi sembra XML. Altrimenti mi potresti dare il link preciso?
    Comunque visto che tu sembri molto esperto, ti faccio un'altra domanda a riguardo. Il server dovremo costituirlo nell'azienda in cui lavoro, quindi mi hanno chiesto un paio di informazioni che serviranno ai miei colleghi per formarlo.
    Il server può solo gestire la comunicazione MQTT o può essere anche un server già esistente che fa pure altre cose?
    Può essere raggiunto attraverso un sottodominio (del tipo www.azienda.it/sezioneMQTT/server) o deve avere obbligatoriamente un dominio a se stante (del tipo "www.azienda.it").

    Grazie ancora una volta

  6. #6
    I sorgenti sono scritti in C, ma per la ocnsultazione e il download ti occorre un client GIT, come questi. Non c'è un package preconfezionato, nel caso di Eclipse/Paho, ma si tratta di snippet da adeguare al sistema target.

    Riguardo al server, nulla osta all'uso di un server già esistente che eroga altri servizi, ma la valutazione va fatta caso per caso. Riguardo al sottodominio non dovrebbero esserci limitazioni consistenti; dal punto di vista ingegneristico, è comunque ragionevole prevedere una fase di test su una macchina separata e dedicata, onde evitare ogni possibile interferenza con un server già "di produzione".
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    8
    Ah ok, ecco perché non riuscivo a scaricarli! Grazie davvero, anche per le altre risposte, ti devo un favore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.