十二、Socket.io基础知识

Socket.io 发送消息

一、给本次连接发送消息(只发给自己)

Socket.io.emit()
当客户端发送消息给服务端,服务端收到后,返回个callback,客户端拿到callback继续后面逻辑
比如 加入房间,服务器返回加入成功,只给本人发送,收到成功后,做后续处理。

二、给某个房间内所有人消息(包括自己)

io.in(room).emit() (等价于io.sockets.in(room).emit,sockets可以省略)
io代表整个结点服务器上所有人;in(room)代表某个具体房间
比如 房间内每个人都需要维护用户列表,当有人加入房间时,需给每个人发消息,更新房间内用户列表

三、除本连接外,给某个房间内所有人发消息(不包括自己)

Socket.to(room).emit()
比如 全体静音功能

四、除本连接外,站内所有人发消息(整个端点内所有人,包括端点内所有房间的所有人,除自己)

Socket.broadcast.emit()

Socket.io 客户端处理消息

一、发送action命令

S: Socket.emit('action')
C: Socket.on('action', function(){...})

一、发送action命令,带有数据

S: Socket.emit('action', data)
C: Socket.on('action', function(data){...})

一、发送action命令,带有两个数据

S: Socket.emit('action', arg1, arg2)
C: Socket.on('action', function(arg1, arg2){...})

一、发送action命令,在emit方法中包含回调函数

S: Socket.emit('action', data, function(arg1, arg2){})
C: Socket.on('action', function(data, fn){fn('a', 'b')})

你可能感兴趣的:(十二、Socket.io基础知识)