//引入mqtt的js包
var mqtt=require('../../utils/mqtt.min.js')
var client=null
Page({
/
*** 頁面的初始數據
*/
data: {
},
onLoad() {
this.買粉絲nnectmqtt()
},
買粉絲nnectmqtt:function(){
var that=this
買粉絲nst options={
買粉絲nnectTimeout:4000,//連接延時
clientId:"PonyRemoteControl"+Math.ceil(Math.random()*10), //昵稱
port:8084,//端口
username:'',
password:''
}
client=mqtt.買粉絲nnect('wxs://mqtt.****.cc/mqtt',options)//連接mqtt
client.on('買粉絲nnect',(e)=>{
買粉絲nsole.log('服務器連接成功')
client.subscribe('EquipmentEnd_RemoteControlCar',{ qos:0},function(err){
if (!err) {
買粉絲nsole.log('訂閱成功')
}
})
})
//信息監聽事件
client.on('message',function(topic,message){
買粉絲nsole.log('收到:'+message.toString())
})
client.on('re買粉絲nnect',(error)=>{
買粉絲nsole.log('正在重連中',error)
})
client.on('error',(error)=>{
買粉絲nsole.log('連接失敗',error)
})
}
})
第一步:
參考此庫官方說明:買粉絲s://github.買粉絲/mqttjs/MQTT.js#browserify
npm install -g webpack // install webpack
cd node_moles/mqtt
npm install . // install dev dependencies
webpack mqtt.js ./my_mqtt.js --output-library-target 買粉絲monjs2
第二步:
將生成的my_mqtt.js文件里所有的:
(function() { return this; }())
替換為:
window
第三步:
在my_mqtt.js文件頂部加上代碼:
var setImmediate = setTimeout;
var clearImmediate = clearTimeout;
var socketOpen = false
var socketMsgQueue = []
function sendSocketMessage(msg) {
買粉絲nsole.log('send msg:', typeof msg)
買粉絲nsole.log(msg);
if (socketOpen) {
wx.sendSocketMessage({
data: msg
})
} else {
socketMsgQueue.push(msg)
}
}
var document = {
URL: ''
}
var window = {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
WebSocket: function (url) {
買粉絲nsole.log('call window WebSocket', arguments)
var ws = {
send: sendSocketMessage,
close: wx.closeSocket,
onopen: null,
onmessage: null,
onclose: null,
onerror: null
}
wx.買粉絲nnectSocket({ url: url })
wx.onSocketOpen(function (res) {
買粉絲nsole.log('收到onopen事件:', arguments)
socketOpen = true
for (var i = 0; i < socketMsgQueue.length; i++) {
sendSocketMessage(socketMsgQueue[i])
}
socketMsgQueue = []
ws.onopen && ws.onopen.apply(ws, arguments)
})
wx.onSocketMessage(function (res) {
買粉絲nsole.log('收到onmessage事件:', arguments)
買粉絲nsole.log(res.data)
ws.onmessage && ws.onmessage.apply(ws, arguments)
})
wx.onSocketClose(function () {
買粉絲nsole.log('收到onclose事件:', arguments)
ws.onclose && ws.onclose.apply(ws, arguments)
})
wx.onSocketError(function () {
買粉絲nsole.log('收到onerror事件:', arguments)
ws.onerror && ws.onerror.apply(ws, arguments)
})
return ws;
}
}
2024-07-10 16:17
2024-07-10 15:48
2024-07-10 15:38
2024-07-10 15:27
2024-07-10 15:10
2024-07-10 15:05