Cómo utilizar el protocolo mqtt en el websocket del subprograma WeChat
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) { p>
console.log('enviar mensaje:', tipo de mensaje)
console.log(msg);
if (socketOpen) {
wx.sendSocketMessage ({
datos: msg
})
} más {
socketMsgQueue push(msg) p>
}
}
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;
}
}
}