javascript - 是否可以向客户端发送 Websocket 连接?

标签 javascript python websocket tornado

各位!

我有以下情况:

  • 我正在运行一个带有 WebSocketHandler 的 Tornado 服务器,该处理程序处理 websocket 上的 open、on_message 和 on_close 事件:

     class WebSocketHandler(tornado.websocket.WebSocketHandler):
         def open(self):
             (...)
         def on_message(self, message):
             (...)
         def on_close(self):
             (...)
    
  • 我有一个 View ,客户端打开一个新的 WebSocket 并设置“onmessage”事件处理程序:

     window.onload = function() {
         ws = new WebSocket("ws://192.168.0.51:8080/websocket");    
         ws.onmessage = function(e) {
             console.log(e.data);
         };
     }
    
  • 如果用户在浏览器中打开一个新选项卡,但他已经在服务器端打开了一个 websocket,我想稍微更改一下这个示例以“重用”websocket 连接。

    我打算通过在打开套接字之前向服务器发出第一个请求并检查响应时发送用户唯一 ID 来实现此目的。

    问题是:如果 Tornado 服务器检测到用户已经打开了连接(websocket),是否可以向该用户(客户端)发送对该连接的引用以启用客户端代码使用它而不是创建新的?

提前致谢!

最佳答案

原则上,这可以通过从共享后台 Web Worker 打开 WebSocket 连接来实现。

并非所有浏览器都支持从 Web Worker 打开 WebSocket 连接。我知道它适用于 Chrome 和 IE11 上的专门网络工作人员,但不适用于 Firefox。

我不知道哪些浏览器支持从共享 Web Worker 打开 WebSocket 连接。

关于javascript - 是否可以向客户端发送 Websocket 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605389/

相关文章:

python - 使用 session.query 通过 SQLAlchemy ORM 更新连接表

python - 使用 Swagger 的同一 def 中的 HTTP 方法的语法

java - 如何在 Spring 中为 WebSocket 升级请求自定义 HTTP 响应?

php - WEB SOCKET PHP 概念

javascript - 通过网络发送的字符串化 Json 无法正确解析

javascript - 有什么办法可以将 Livestamp.js 时间从 '10 minutes ago' 缩短到 '10m ago' 吗?

javascript - 仅显示 1 个 Facebook 好友 - 使用 FB Javascript SDK jQuery

javascript - 通过按钮切换类(选择/取消选择)

python - 将数据附加到现有的 Excel 电子表格

php - Firebug AJAX 请求中止 - 无响应正文或 header (同一域)