每当我尝试使用此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服务器
答案 0 :(得分:1)
虽然我无法为您的服务器问题提供答案,但在第6行,您会立即调用尚不存在的变量(socket
),并在整个脚本中继续使用该变量。这实际上会导致您的catch
被触发,因为它会产生异常。
将socket
的实例替换为ws
(反之亦然),让我们看看它们的位置。