【问题标题】:Use the same socket.io connection in multiple HTML pages在多个 HTML 页面中使用相同的 socket.io 连接
【发布时间】:2020-09-10 14:26:25
【问题描述】:

这可能吗,或者当客户端在同一网络区域中输入另一个 HTML 文件时,您是否必须强制另一个 socket.io 连接到客户端?

【问题讨论】:

标签: javascript html node.js socket.io


【解决方案1】:

我认为 1 个连接就可以完成这项工作。看这段代码:

    var io = require('socket.io')(server);
    io.sockets.on('connection', function(socket) {
        console.log("user connected");
        socket.on('from_client', function(data) {
            io.sockets.emit('to_client', data); 
        });
    });

当新的浏览器选项卡打开 localhost:8000 时,会打印“用户已连接”上方,因此,您可以为每个打开的浏览器窗口使用相同的 socket.io(emit 将消息发送到所有客户端)。因此,至于您问的问题,答案是否定的,更改打开/现有客户端的 html 不需要您创建新套接字/

【讨论】:

  • 但是当我尝试访问我在另一个 HTML 文件中创建的套接字变量时,它说它是未定义的。
【解决方案2】:

我们无法为所有 html 页面创建具有相同套接字 id 的连接。因为当我们尝试重新加载或重定向到新页面时,套接字连接会断开。它将创建一个具有新套接字 id 的新连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2018-02-15
    • 2017-06-14
    • 1970-01-01
    • 2013-12-28
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多