object-ungroup命名空间

命名空间

命名空间在 SocketIO 服务器内提供功能和事件处理的逻辑分离。 它们允许应用程序的不同部分使用 单一物理连接.

circle-info

命名空间不会创建单独的套接字连接。 客户端只连接一次,并且可以在相同的底层 WebSocket/TCP 会话上加入多个命名空间。


默认命名空间

如果客户端在连接时未指定命名空间,则会附加到默认命名空间("").

Configuration config = new Configuration();
config.setPort(9092);

SocketIOServer server = new SocketIOServer(config);
// 默认命名空间隐式存在
server.start();

自定义命名空间

自定义命名空间用于分离应用关注点和事件范围。

SocketIOServer server = new SocketIOServer(config);

Namespace chat = server.addNamespace("/chat");
Namespace admin = server.addNamespace("/auth");

server.start();
circle-info

请不要忘记添加 "/",它始终是 "/namespace" 而不是单独的 "namespace"。

每个命名空间定义:

  • 它自己的事件监听器

  • 它自己的连接生命周期

  • 它自己的授权逻辑

  • 它自己的广播操作


公共命名空间示例(/chat)

/chat 命名空间是开放的,允许在不进行身份验证的情况下进行通用消息传递。

服务器

客户端


需要认证的命名空间示例(/auth)

/auth 命名空间在连接期间通过执行授权逻辑来限制访问。

服务器

已授权客户端

未授权客户端

预期服务器输出:


最后更新于

这有帮助吗?