• node中的socket.io制作命名空间


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

    io.of(namespace)

    制作两个命名空间

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

     1 var express=require("express");
     2 var http=require("http");
     3 var sio=require("socket.io");
     4 var app=express();
     5 var server=http.createServer(app);
     6 app.get("/", function (req,res) {
     7     res.sendfile(__dirname+"/index.html");
     8 });
     9 server.listen(1337,"127.0.0.1", function () {
    10     console.log("开始监听1337");
    11 });
    12 var io=sio.listen(server);
    13 var chart=io.of("/chat").on("connection", function (socket) {
    14     socket.send("欢迎访问chat空间!");
    15     socket.on("message", function (msg) {
    16         console.log("chat命名空间接收到信息:"+msg);
    17     });
    18 });
    19 var news=io.of("/news").on("connection", function (socket) {
    20     socket.emit("send message","欢迎访问news空间!");
    21     socket.on("send message", function (data) {
    22        console.log("news命名空间接受到send message事件,数据为:"+data);
    23     });
    24 });
     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <script src="/socket.io/socket.io.js"></script>
     7     <script>
     8         var chat=io.connect("http://localhost/chat"),
     9             news=io.connect("http://localhost/news");
    10 
    11         chat.on("connect", function () {
    12             chat.send("你好.");
    13             chat.on("message", function (msg) {
    14                 console.log("从char空间接收到消息:"+msg);
    15             });
    16         });
    17         news.on("connect", function () {
    18             news.emit("send message","hello");
    19             news.on("send message", function (data) {
    20                 console.log("从news命名空间接收到send message事件,数据位:"+data);
    21             });
    22         });
    23     </script>
    24 </head>
    25 <body>
    26 
    27 </body>
    28 </html>

    运行结果:

  • 相关阅读:
    spring boot单元测试之七:用mockmvc模拟session(spring boot 2.4.3)
    spring boot单元测试之六:用mockmvc模拟cookie(spring boot 2.4.3)
    sql join 注意事项
    见路不走,即见因果
    presto sql 经典sql 应用
    别拿你的职业去拔高你个人的规格, 让人轻看
    《遥远的救世主》经典台词
    《卜算子·自嘲》
    天道连续剧 丁元英语录
    shell diff + kettle = mail 预警
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4162206.html
Copyright © 2020-2023  润新知