微信小程序聊天与web端的websocket基本一样,不同在于小程序封装了一下,正式上线需要wss,若用ws会链接不上,不要忘记配置socket合法域名,网上好多说不能配置端口号,亲测可以
这段代码当做一个js文件调用就可以了
function connect(url, func) {
wx.connectSocket({
url: url,
header:{'content-type': 'application/json'},
success: function () {
console.log('欢迎进入聊天室')
},
fail: function () {
console.log('进入聊天室失败~')
}
})
wx.onSocketOpen(function (res) {
wx.showToast({
title: '欢迎进入聊天室',
icon: "success",
duration: 2000
})
//接受服务器消息
wx.onSocketMessage(func);
});
//这是抛错
wx.onSocketError(function (res) {
console.log(res)
})
}
//发送消息
function send(msg) {
wx.sendSocketMessage({
data: msg
});
}
module.exports = {
connect: connect,
send: send
}
然后调用
app.globalData.swooleip代表地址,后面是拼接的参数?sonid= 这里的scrollTop是为了是聊天置底,
<scroll-view scroll-y style="height: {{scroll_height}}px;" scroll-top="{{scrollTop}}">
//聊天内容显示
</scroll-view>
//调通接口
let _this = this;
websocket.connect('wss://' + app.globalData.swooleip + '?sonid=' + soninfo.id, function (res) {
console.log(JSON.parse(res.data))
let = [];
list = _this.data.infoList;
// console.log(list)
list.push(JSON.parse(res.data))
_this.setData({
infoList: list,
scrollTop: list.length*200
})
})
//发送消息
websocket.send(JSON.stringify(msg));
后台启动socket服务就可以实现聊天了!