2

この 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 で実行しましたが、コードをトレースすると、OnOpen ではなく Catch イベントがトリガーされ、次のメッセージが表示されます。

[11:58:50.103] ページの読み込み中に ws://localhost:50002/ への接続が中断されました。@ /lib/default.js:5

これが Firefox のバグであることはわかっていますが、私のサーバー コンソールは、コンピューター 127.0.0.1 からの接続が受け入れられたと表示し続けます。何か不足していますか?C# で Fleck サーバーを使用しています

4

1 に答える 1

1

サーバーの問題に対する回答を提供することはできませんが、6 行目で、socketまだ存在しない変数 ( ) をすぐに呼び出し、スクリプト全体でそれを使用し続けます。これにより、例外が発生するため、実際には、少なくともcatchトリガーされます。

のインスタンスをsocketwith ws(またはその逆) に置き換えて、どこに到達するか見てみましょう。

于 2013-10-11T23:05:20.027 に答える