protocolo de comunicación Unidad MQTT en la aplicación de --JS

Ha estado en el estudio de la industria, de acuerdo con los requisitos de doble digital, que necesita para obtener a través de la red, desde el CLP para la IOT a Dass a una fábrica virtual (visualización tridimensional), con el fin de abrir el control y estado anti-control, que necesitamos para abrir la comunicación de red para la Unidad primer pensamiento ciertamente Socket Communications, que muchos desarrolladores están familiarizados con el método, pero el protocolo de comunicación MQTT utilizado en la industria de las comunicaciones es muy común, por lo que hoy el protocolo de comunicación que MQTT para su uso en la Unidad sí introducen
mí estar aquí debido a la nube, por lo que, probé dos opciones
1. MQTT para lograr la comunicación a través de JS, ya través de la interacción con JS Unidad, comunico
primera necesidad OPS-mqtt.js, jquery.min.js dos guiones, hay muchos en línea, si también es competente en JS usted puede escribir su propia, todos sabemos que acostumbrado a hacer.
Aquí está el código para conectar y comunicar información

    <script src="./jquery.min.js"></script>
    <script src="./paho-mqtt.js"></script>
        <scrpt>
           //MQTT连接
    //选中订阅主题
    var selectedTopics = [];
    //选中发布主题
    var currentTopic;
      //客户端选项
    var option = {
        "ServerUri": "127.0.0.1",
        "ServerPort": 61623,
        "UserName": "admin",
        "Password": "password",
        "ClientId": "",
        "TimeOut": 5,
        "KeepAlive": 100,
        "CleanSession": false,
        "SSL":false
    }

      //客户端
    var client;

      //连接
    function connectFun(){
        option .ClientId = guid();
        client = new Paho.Client(option.ServerUri, option.ServerPort, option.ClientId);
        client.onConnectionLost = onConnectionLost;
        client.onMessageArrived = onMessageArrived;
        client.connect({
            invocationContext: {
                host: option.ServerUri,//IP地址
                port: option.ServerPort,//端口号
               path: client.path,
                clientId: option.ClientId//标识
            },
            timeout: option.TimeOut,//连接超时时间
            keepAliveInterval: option.KeepAlive,//心跳间隔
            cleanSession: option.CleanSession,//是否清理Session
            useSSL: option.SSL,//是否启用SSL
            userName: option.UserName,  //用户名
            password: option.Password,  //密码
            onSuccess: onConnect,//连接成功回调事件
            onFailure: onError//连接失败回调事件
        }); 
    }

    //断开连接
    function disConnect(){
        //client.disconnect();
    }

    //订阅
    function onSubscrip(sub)
    {
        if (!client) {
            gameInstance.SendMessage("GameAPP","OnException","请连接服务");
            //alert("失败");
            return; 
        }

        selectedTopics.push(sub);
        client.subscribe(selectedTopics,0x02);
        //alert("订阅:" + sub);
        gameInstance.SendMessage("GameAPP","OnException","订阅频道:" + sub);
    }

            //发布
    function onRele(sub,info)
    {
        if (!client) {
            gameInstance.SendMessage("GameAPP","OnException","请连接服务");
            return;
        }

        var message = new Paho.Message(info);
        currentTopic = sub;
        message.destinationName = currentTopic;
        //client.send(message)
        client.publish(currentTopic,info,0x02,false);

        gameInstance.SendMessage("GameAPP","OnException","发布消息:" + info);

    }

         //接收消息事件
    function onMessageArrived(data) {
        gameInstance.SendMessage("GameAPP","OnGetInfo","接收消息:" + data.payloadString);
        //alert("消息:" + data.payloadString);
    } 

    //连接断开事件
    function onConnectionLost(e) {
        if (e.errorCode !== 0) {
           gameInstance.SendMessage("GameAPP","OnException","发布消息:" + e.errorCode);
        }
    }

    //连接成功回调事件
    function onConnect()
    {
        gameInstance.SendMessage("GameAPP","OnException","连接成功!");
    }

    function onError(e){
        gameInstance.SendMessage("GameAPP","OnException","连接失败,请重新连接,");
    }

    //生成GUID
    function guid() {
        function S4() {
            return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
        }
        return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
    }

        </script>

Sólo tiene que aceptar la información enviada a la unidad, o la información obtenida de la Unidad emitió.

Supongo que te gusta

Origin blog.51cto.com/myselfdream/2486066
Recomendado
Clasificación