Socket.IO IM通讯组件

手机APP/开发
481
0
0
2022-04-11
标签   uni-app

Uni-app插件下载链接(兼容小程序):

npm i @hyoga/uni-socket.io --save

PC版连接例子:

引入socketIo

<script src="socket.io.js"></script>
创建连接:
var socket = new io('http://服务器IP:端口号?token=TOKEN', {
transports: [ 'websocket']
});

监听事件:

监听连接成功事件

socket.on('connect', function() {
console.log("连接成功");
//将自己注册到SOCKET
socket.emit('conn',{ uid: "会员ID" })
});

监听自己的注册状态,

注册成功后才可接收消息

socket.on('conn', function (data) {
if(data[0] == 'ok'){
console.log('注册成功' )
} else{
console.log('注册失败' )
}
});

监听断线重连

socket.on('reconnect', function() {
console.log("重连成功");
});

监听断线

socket.on('disconnect', function() {
console.log("已下线");
});

监听全部会员的上线广播

socket.on('login', function(data) {
console.log("会员上线",data.uid);
});

监听全部会员的下线广播

socket.on('loginout', function(data) {
console.log("会员下线",data.uid);
});

接收消息

socket.on('broadcastingListen', function (data) {
for(i=0;i<data.length;i++){
console.log(data[i]) //与你发送的msg 一致
}
});

接收警告消息

socket.on('notice', function (data) {
console.log(data)//例:对方不是好友
});

发送消息:

单发

socket.emit("sendmsg",{
"to_id": "接收人会员ID",
"msg": "消息内容",
"msg_type": "1"//消息类型
})

群发

socket.emit("sendall",{
"room":"room1",
"message":"Hello"
})

注销socket

socket.disconnect();
socket = null;