一、简介
netty-socketio中的namespace可以用于区别在相同连接地址下的不同用户,当两个不同的用户打开同一个页面的时候,可以使用namespace用来标记不同用户。例如我们可以在用户中心页面动态的获取用户的消息数目。这里就可以使用到namespace。因为每个用户的id都是不一样的,我们可以使用id来标识每个用户的namespace。
二、示例
服务器端代码:
package com.test.socket;import com.corundumstudio.socketio.Configuration;import com.corundumstudio.socketio.SocketIONamespace;import com.corundumstudio.socketio.SocketIOServer;public class SocketServer2 { public static void main(String[] args) throws InterruptedException { Configuration config = new Configuration(); config.setHostname("localhost"); config.setPort(9092); final SocketIOServer server = new SocketIOServer(config); server.start(); String uid = "1111"; String namespace = String.format("/%s_%s", "msg", uid);//构建命名空间 SocketIONamespace chat1namespace = server.addNamespace(namespace); //设置命名空间 for (int i = 0; i < 50; i++) { Thread.sleep(2000); chat1namespace.getBroadcastOperations().sendEvent("message", 1); //每次发送数字一 } Thread.sleep(Integer.MAX_VALUE); server.stop(); }}
客户端message.html代码:
1 2 3 4 5Insert title here 6 7 8 9 21 22 23 24 25 26Netty-socketio Demo Chat
27 28 29 303132 消息总数:0 33 34 35 36 37 64
启动服务器,访问该网页,消息总数会每次加1。