Javascript - WebSocket OnOpen 事件未触发
Posted
技术标签:
【中文标题】Javascript - WebSocket OnOpen 事件未触发【英文标题】:Javascript - WebSocket OnOpen event not triggering 【发布时间】:2013-05-25 11:09:19 【问题描述】:每当我尝试使用此 JS 代码连接到我计算机上的 WebSocket 服务器时,我都会收到错误消息:
$(document).ready(function ()
var ws;
try
if("WebSocket" in window)
ws = new WebSocket("ws://localhost:50002");
socket.onopen = function()
$('#topbar').empty();
$('#topbar').append('<form id="test">');
$('#topbar').append('<input>');
$('#topbar').append('</form>');
socket.onmessage = function(msg)
;
socket.onclose = function()
;
socket.onerror = function(error)
$('#topbar').append('<div>Cannot make a connection with the server. Server is most likely in maintenance mode. Try again later</div>');
catch(exception) $('#topbar').append('<div>Cannot make a connection with the server. Server is most likely in maintenance mode. Try again later</div>');
);
我在 Firefox 中运行此代码,但是当我跟踪我的代码时,触发了 Catch 事件而不是 OnOpen,并且我收到了以下消息:
[11:58:50.103] 到 ws://localhost:50002/ 的连接是 页面加载时中断。 @/lib/default.js:5
我知道这是 Firefox 中的一个错误,但我的服务器控制台一直说它已接受来自我的计算机 127.0.0.1 的连接。我错过了什么吗?我在 C# 中使用 Fleck 服务器
【问题讨论】:
凹凸。有什么帮助吗?现在已经快一个星期了...... 凹凸。现在两周。没有人知道为什么这不起作用吗? BUMP 我也想知道这个(有点晚了) 【参考方案1】:虽然我无法为您的服务器问题提供答案,但在第 6 行,您会立即调用一个尚不存在的变量 (socket
),并在整个脚本中继续使用该变量。这实际上至少会导致您的catch
被触发,因为它会产生异常。
将socket
的实例替换为ws
(反之亦然),让我们看看它的作用。
【讨论】:
以上是关于Javascript - WebSocket OnOpen 事件未触发的主要内容,如果未能解决你的问题,请参考以下文章
多个连接,但单个 websocket.on("message") 事件发射器
打开 websocket 连接时 on_open 函数无法运行?
如何在 ruby on rails 中通过 websocket 发送保持活动的数据包