0

Aurora 17、Chrome 22、Firefox 16 を使用しており、シンプルなチャット アプリを作成しようとしています。Node 0.8.9 を使用しています。

Firefox に接続できないというエラーが表示され、エラーが発生する

   Firefox can't establish a connection to the server at ws://localhost/.

ポートでも試してみましたが、同じメッセージが表示されます

Firefox can't establish a connection to the server at ws://localhost:4444/.

これが私のコードです:

サーバーコード:

var http = require('http');
var net = require('net');

function onRequest(req, res) {
   // Does enough to render a page and javascript
}
http.createServer(onRequest).listen(4444);

var socket = new net.Socket();
socket.connect(4444, "localhost", function(){
    console.log("Socket Connected");
});

socket.on("message", function(message){
    console.log(message);
});

クライアントコード:

var WebSocket = window.WebSocket || window.MozWebSocket;

var connection = new WebSocket('ws://localhost:4444');

connection.onopen = function() {
    // Never runs
    alert("This never runs :(")
}

connection.onerror = function(error) {
    // Always runs here
    console.log(error)
}

サーバーのログステートメントからソケットが接続されているという出力が得られますが、Firefox はソケットに接続できません。

Chrome ではエラーは発生しませんが、"onopen" は発生しません。connection.send("a message") を使用すると、サーバーに何も送信されず、false が返されます。

4

1 に答える 1

3

サーバー コードで通常の TCP クライアント ソケットを作成し、それを HTTP サーバーに接続します。これは、ブラウザーが接続できる WebSocket サーバーを作成することとまったく同じではありません。目的に合わせて設計されたライブラリを使用します (socket.io は、ブラウザーが WebSocket をサポートしていない場合に代替トランスポートにフォールバックできるため、非常に一般的に使用されます)。

于 2012-10-10T16:39:05.437 に答える