zl程序教程

您现在的位置是:首页 >  后端

当前栏目

node.js中使用socket.io制作命名空间

JSNodeIO 使用 空间 制作 命名 socket
2023-06-13 09:15:33 时间

如果开发者想在一个特定的应用程序中完全控制消息与事件的发送,只需要使用一个默认的"/"命名空间就足够了.但是如果开发者需要将应用程序作为第三方服务提供给其他应用程序,则需要为一个用于与客户端连接的socket端口定义一个独立的命名空间.

io.of(namespace)

制作两个命名空间

chat和news然后在客户端相互发送信息.

复制代码代码如下:


varexpress=require("express");
varhttp=require("http");
varsio=require("socket.io");
varapp=express();
varserver=http.createServer(app);
app.get("/",function(req,res){
   res.sendfile(__dirname+"/index.html");
});
server.listen(1337,"127.0.0.1",function(){
   console.log("开始监听1337");
});
vario=sio.listen(server);
varchart=io.of("/chat").on("connection",function(socket){
   socket.send("欢迎访问chat空间!");
   socket.on("message",function(msg){
       console.log("chat命名空间接收到信息:"+msg);
   });
});
varnews=io.of("/news").on("connection",function(socket){
   socket.emit("sendmessage","欢迎访问news空间!");
   socket.on("sendmessage",function(data){
      console.log("news命名空间接受到sendmessage事件,数据为:"+data);
   });
});

复制代码代码如下:


<!DOCTYPEhtml>
<html>
<headlang="en">
   <metacharset="UTF-8">
   <title></title>
   <scriptsrc="/socket.io/socket.io.js"></script>
   <script>
       varchat=io.connect("http://localhost/chat"),
           news=io.connect("http://localhost/news");
       chat.on("connect",function(){
           chat.send("你好.");
           chat.on("message",function(msg){
               console.log("从char空间接收到消息:"+msg);
           });
       });
       news.on("connect",function(){
           news.emit("sendmessage","hello");
           news.on("sendmessage",function(data){
               console.log("从news命名空间接收到sendmessage事件,数据位:"+data);
           });
       });
   </script>
</head>
<body>
</body>
</html>

运行结果:

小伙伴们是否了解了在node.js中使用socket.io制作命名空间的方法了呢,这里的2个例子很简单,童鞋们自由发挥下。