Javascript 是否可以将Websocket连接发送到客户端?
伙计们 我有以下情况:Javascript 是否可以将Websocket连接发送到客户端?,javascript,python,websocket,tornado,Javascript,Python,Websocket,Tornado,伙计们 我有以下情况: 我正在运行一个带有WebSocketHandler的Tornado服务器,它处理websocket上的打开、打开和关闭事件: class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self): (...) def on_message(self, message): (...) def on_close(self):
- 我正在运行一个带有WebSocketHandler的Tornado服务器,它处理websocket上的打开、打开和关闭事件:
class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self): (...) def on_message(self, message): (...) def on_close(self): (...)
- 我有一个视图,其中客户端打开一个新的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工作者打开WebSocket连接来实现 并非所有浏览器都支持从Web workers打开WebSocket连接。我知道它可以在Chrome和IE11上与专门的网络工作者一起工作,而不能在Firefox上工作
我不知道哪些浏览器支持从共享Web workers打开WebSocket连接。大多数浏览器将打开一个全新的实例,并且不会重用其他选项卡上的项目,即使它是同一个站点。也就是说,无论发生什么情况,客户端(浏览器)都将强制建立新连接。这是所有web trabbic背后的基本思想,这是一个新的->打开->请求->获取->显示请求的故事,在这里,您不断处理新的连接:)我理解您想要实现的目标,但遗憾的是,正如前面提到的,浏览器不会考虑您说“嘿,您已经打开了连接”而且它会简单地请求一个新的开口,因为它有时比重复使用hanks来获得快速答案更快,@Torxed!事实上,这完全有道理。我将更改aproach以限制每个用户打开的套接字的数量。再次感谢:)谢谢,奥伯斯特!我要试试看!