微信小程序 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);
})
差不多就是这样了,我觉得我这样封装的没意义,微信做的够好了~