socket.io 是一個基於websocket實現的前后端實時通訊框架,也對低版本瀏覽器做了封裝。使用起來簡單,方便。
初次使用起來可能會比較迷糊,其實主要常用就幾個方法,簡單介紹一下。
//客戶端
io.connect(url) //客戶端連接上服務器端
socket.on('eventName', msg => {}) //客戶端監聽服務器端事件
socket.emit('eventName', msg) //客戶端向服務器端發送數據
socket.disconnect() //客戶端斷開鏈接
//服務端
socket.on('eventName', msg => {}) //服務器端監聽客戶端emit的事件,事件名稱可以和客戶端是重復的,但是並沒有任何關聯。socket.io內置了一些事件比如connection,disconnect,exit事件,業務中錯誤處理需要用到。
socket.emit('eventName', msg) //服務端各自的socket向各自的客戶端發送數據
socket.broadcast('eventName', msg) //服務端向其他客戶端發送消息,不包括自己的客戶端
socket.join(channel) //創建一個頻道(非常有用,尤其做分頻道的時候,比如斗地主這種實時棋牌游戲)
io.sockets.in(channel) //加入一個頻道
socket.broadcast.to(channel).emit('eventName', msg) //向一個頻道發送消息,不包括自己
io.sockets.adapter.rooms //獲取所有的頻道
歡迎借鑒~
