微信小程序 websocket 封裝
今天又要寫微信小程序,需要使用websocket,閑着沒事封裝一下吧,反正封裝了也不會好用。
封裝 websocket
首先在 page 文件夾下創建一個 js 文件夾存放封裝的 websocket 請求,其實放哪里看自己需要,都行。
在 js 文件夾下創建一個 websocket.js 文件,里面是封裝好的 websocket 代碼,其實叫啥名都行,看你心情。
/**
* TODO websocket封裝
* wjw
* 2020年3月19日14:30:03
*/
const config = require('./config.js')
var app = getApp();
const host = config.websocketServer; // websocket服務器baseUrl
let sotk = null;
let socketOpen =false;
function ws_connect(reMsg){
sotk = wx.connectSocket({
url: config.websocketServer,
header: {
'content-type': 'application/json'
}
})
sotk.onOpen(res => {
socketOpen = true;
// console.log('監聽 WebSocket 連接打開事件。', res);
})
sotk.onClose(onClose => {
socketOpen = false;
// console.log('監聽 WebSocket 連接關閉事件。', onClose)
})
sotk.onError(onError => {
socketOpen = true;
// console.log('監聽 WebSocket 錯誤。錯誤信息', onError)
})
// 收到消息
sotk.onMessage(onMessage => {
// var data = JSON.parse(onMessage.data);
reMsg(onMessage.data);
})
}
function sendMsg(msg,success){
if (socketOpen) {
// console.log('通過 WebSocket 連接發送數據', JSON.stringify(msg))
sotk.send({
data: JSON.stringify(msg)
}, function (res) {
success(res)
})
}
}
module.exports.ws_connect = ws_connect;
module.exports.sendMsg = sendMsg;
在 上邊文件中使用了一個config.js配置文件,我把服務器的連接扔里邊了,方便維護,里面長這個逼樣:
module.exports = {
websocketServer:'ws://121.40.165.18:8800', // 這個地址是測試的,得改成自己的
}
使用
首先在使用 websocket 的地方導入一下子
var websocket = require('../js/websocket.js') // 這是問價路徑,改成自己的
連接 websocket
// 連接websocket
websocket.ws_connect((data)=>{
console.log(data)
})
發布消息
websocket.sendMsg('你好,我叫wjw',(data)=>{
console.log(1111,data);
})
差不多就是這樣了,我覺得我這樣封裝的沒意義,微信做的夠好了~
