Socket.IO IM通讯组件

手机APP/开发
429
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;