Red de conocimiento informático - Material del sitio web - Cómo utilizar el protocolo mqtt en el websocket del subprograma WeChat

Cómo utilizar el protocolo mqtt en el websocket del subprograma WeChat

Paso 1:

Consulte las instrucciones oficiales de la biblioteca: /mqttjs/MQTT.js#browserify

npm install -g webpack // install webpack

cd node_modules/mqtt

npm install .// instalar dependencias de desarrollo

webpack mqtt.js ./my_mqtt.js --output-library-target commonjs2

Paso 2:

Reemplazar todo:

(function() { return this; }())

Reemplazar todo en el archivo my_mqtt.js generado con :

ventana

Paso 3:

Agregue código en la parte superior del archivo my_mqtt.js:

var setImmediate = setTimeout;

var clearImmediate = clearTimeout;

var socketOpen = false

var socketMsgQueue = []

función sendSocketMessage(msg) {

console.log('enviar mensaje:', tipo de mensaje)

console.log(msg);

if (socketOpen) {

wx.sendSocketMessage ({

datos: msg

})

} más {

socketMsgQueue push(msg)

}

}

var documento = {

URL: ''

}

var ventana = {

setTimeout: setTimeout,

clearTimeout: clearTimeout,

WebSocket: función (url) {

consola. log('llamar ventana WebSocket', argumentos)

var ws = {

enviar: sendSocketMessage,

cerrar: wx.closeSocket,

onopen: nulo,

onmessage: nulo,

onclose: nulo,

onerror.null

}

wx .connectSocket({ url: url })

wx.onSocketOpen(función (res) {

console.log('Evento onopen recibido:', argumentos)

socketOpen = true

for (var i = 0; i < socketMsgQueue.length; i++) {

sendSocketMessage(socketMsgQueue[i])

} <

/p>

socketMsgQueue = []

ws.onopen && ws.onopen.apply(ws, argumentos)

})

wx.onSocketMessage (función (res) {

console.log('Evento de mensaje recibido:', argumentos)

console.log(res.data)

ws. onmessage && ws.onmessage.apply(ws, argumentos)

})

wx.onSocketClose(function () {

console.log('Recibido al cerrar evento:', argumentos)

ws.onclose && ws.onclose.apply( ws, argumentos)

})

wx.onSocketError(función () {

console.log('Evento de error recibido:', argumentos)

ws.onerror && ws .onerror.apply( ws, argumentos)

} )

devolver ws;

}

}

}