Socket.io 發(fā)送消息
一愉耙、給本次連接發(fā)送消息(只發(fā)給自己)
Socket.io.emit()
當(dāng)客戶端發(fā)送消息給服務(wù)端贮尉,服務(wù)端收到后,返回個callback朴沿,客戶端拿到callback繼續(xù)后面邏輯
比如 加入房間猜谚,服務(wù)器返回加入成功,只給本人發(fā)送赌渣,收到成功后魏铅,做后續(xù)處理。
二坚芜、給某個房間內(nèi)所有人消息(包括自己)
io.in(room).emit() (等價于io.sockets.in(room).emit览芳,sockets可以省略)
io代表整個結(jié)點服務(wù)器上所有人;in(room)代表某個具體房間
比如 房間內(nèi)每個人都需要維護(hù)用戶列表鸿竖,當(dāng)有人加入房間時沧竟,需給每個人發(fā)消息,更新房間內(nèi)用戶列表
三缚忧、除本連接外悟泵,給某個房間內(nèi)所有人發(fā)消息(不包括自己)
Socket.to(room).emit()
比如 全體靜音功能
四、除本連接外闪水,站內(nèi)所有人發(fā)消息(整個端點內(nèi)所有人糕非,包括端點內(nèi)所有房間的所有人,除自己)
Socket.broadcast.emit()
Socket.io 客戶端處理消息
一敦第、發(fā)送action命令
S: Socket.emit('action')
C: Socket.on('action', function(){...})
一峰弹、發(fā)送action命令,帶有數(shù)據(jù)
S: Socket.emit('action', data)
C: Socket.on('action', function(data){...})
一芜果、發(fā)送action命令鞠呈,帶有兩個數(shù)據(jù)
S: Socket.emit('action', arg1, arg2)
C: Socket.on('action', function(arg1, arg2){...})
一、發(fā)送action命令右钾,在emit方法中包含回調(diào)函數(shù)
S: Socket.emit('action', data, function(arg1, arg2){})
C: Socket.on('action', function(data, fn){fn('a', 'b')})