Socket.IO IM通訊元件

php迷途小書童發表於2021-04-29

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;
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章