首页 > 代码库 > netty-socketio使用namespace
netty-socketio使用namespace
一、简介
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 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Insert title here</title> 6 <script src="./jquery-1.9.1.js" type="text/javascript"></script> 7 <script type="text/javascript" src="./socket.io/socket.io.js"></script> 8 9 <style>10 body { 11 padding:20px;12 }13 #console { 14 overflow: auto; 15 }16 .username-msg {color:orange;}17 .connect-msg {color:green;}18 .disconnect-msg {color:red;}19 .send-msg {color:#888}20 </style>21 22 </head>23 24 <body>25 26 <h1>Netty-socketio Demo Chat</h1>27 28 <br/>29 30 <div id="console" class="well">31 </div>32 消息总数:<div id="msgnum">0</di> 33 </body>34 35 36 37 <script type="text/javascript">38 var socket = io.connect(‘http://localhost:9092/msg_1111‘);39 40 socket.on(‘connect‘, function() {41 output(‘<span class="connect-msg">Client has connected to the server!</span>‘);42 });43 44 socket.on(‘message‘, function(data) {//收到消息后,将消息总数加一45 var num = $("#msgnum").html();46 num = parseInt(num) + data;47 $("#msgnum").html(num);48 });49 50 socket.on(‘disconnect‘, function() {51 output(‘<span class="disconnect-msg">The client has disconnected!</span>‘);52 });53 function sendDisconnect() {54 socket.disconnect();55 } 56 57 function output(message) {58 var currentTime = "<span class=‘time‘>" + new Date() + "</span>";59 var element = $("<div>" + currentTime + " " + message + "</div>");60 $(‘#console‘).prepend(element);61 }62 63 </script>64 </html>
启动服务器,访问该网页,消息总数会每次加1。
netty-socketio使用namespace
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。