概念
namespace 和room的概念其实用来同一个服务端socket多路复用的。namespace,room和socketio的关系如下:
每一个socket(每一个客户端)会属于某一个room,如果没有指定,那么会有一个default的room。这个room又会属于某个namespace,如果没有指定,那么就是默认的namespace /。
广播
socketIO广播的时候是以namespace或者room为单位的。指定某个namespace为单位,那么这个namespace下的所有room中的客户端都可以接收到广播消息。指定某个room为单位,那么只有这个room中的客户端可以接收到广播消息。
Netty-Socketio主要类和方法
SocketIOClient
客户端接口,其实现类是NamespaceClient,主要方法如下
joinRoom() 加入到指定房间。
leaveRoom() 从指定房间离开。
getSessionId()方法,返回由UUID生成的唯一标识。
getAllRooms() 返回当前客户端所在的room名称列表。
sendEvent(eventname,data) 向当前客户端发送事件。
SocketIOServer
服务端实例,主要方法如下:
getAllClients() 返回默认名称空间中的所有客户端实例。