【问题标题】:Hold Websocket-Connection over several pages将 Websocket-Connection 保持在多个页面上
【发布时间】:2015-03-30 15:31:22
【问题描述】:

我需要一个想法来设计一个与我的 C++-Webserver 通信的复杂 html/javascript(jQuery) 系统。

直到现在我有一个主 index.html 并且我通过事件加载子模块:

$(".MainButton").click(function(){
   $("#swap").load($(this).attr('alt'));
});

现在的问题是每个子模块都需要一个 Websocket 连接,我不想为我正在加载的每个子模块打开一个新的连接。

是否可以打开全局 Websocket 连接..

var ws = new WebSocket("ws://localhost:800/stream");

.. 并在每个子页面中使用 ws?

非常感谢。

【问题讨论】:

    标签: javascript jquery html websocket


    【解决方案1】:

    您的问题的标题和内容不同。至于内容,如果你通过 jQuery 的 load 方法加载 HTML 片段(而不是页面),这些片段会合并到文档中,结果只有那个文档存在。如果是您的情况,您为什么不通过将ws 设为window 的全局变量并在子模块中使用它来打开main.html 上的连接?只要子模块的URI与CORS同源或跨源,就可以访问和操作main.html的ws

    但是,如果您坚持应该在多个页面上保持连接,包括刷新 main.html 作为您的问题的标题,那么除非您使用 Single-page application,否则现在是不可能的。详情见以下:

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 2021-11-14
      • 2014-05-06
      • 1970-01-01
      • 2022-10-04
      • 2018-10-17
      相关资源
      最近更新 更多