上個禮拜小程序用https,這禮拜要用websocket,好在小程序已經很好的支持websocket了 ,這里只是需要簡單的封裝下就可以,
先在app.js 中聲明並初始化以下
startWebSocket: function () {
var that = this;
that.WebSocketInit()
wx.onSocketError(function () {
})
wx.onSocketMessage(function (data_) {
that.socketOperation(data_)
})
wx.onSocketClose(function (res) {
that.WebSocketInit()
})
},
//連接websocket
WebSocketInit: function () {
wx.connectSocket({
url: this.data.wws,
data: {},
method: 'GET',
success: function (res) {
console.log("connectSocket 成功")
},
fail: function (res) {
console.log("connectSocket 失敗")
}
})
wx.onSocketOpen(function () {
// callback
var mCmd = { "cmd": "connect.Connect", "data": {} }
wx.sendSocketMessage({
data: JSON.stringify(mCmd),
success: function (res) {
console.log("sendSocketMessage 成功")
},
fail: function (res) {
console.log("sendSocketMessage 失敗")
}
});
wx.onSocketMessage(function (data) {
console.log("onSocketMessage ", data)
})
})
},
然后在新建一個輔助js來發送和接收數據
function sendMessage() {
var mCmd = { "cmd": "connect.getWlList", "data": { "mdd": "370600" } }
wx.sendSocketMessage({
data: JSON.stringify(mCmd),
success:function(res){
}
})
}
function resiverMessage(context) {
wx.onSocketMessage(function (data) {
context.onMessage(JSON.parse(data.data)) //這里定義一個onMessage方法,用於每個頁面的回調
}) } module.exports = { formatNumber: formatNumber, judge: judge, sendMessage: sendMessage, resiverMessage: resiverMessage }
使用的話也很簡單
onMessage: function (res) {
this.setData({ data: res.data });
console.log(res);
},
onLoad: function (options) {
app.data.util.sendMessage();
app.data.util.resiverMessage(this)
結束;