2011-11-13 14 views
1

私は自分のページの1つにWebソケットを実装するためにsocket.ioでNode.jsを使用しています。 server.jsは(Node.jsのを実行するもの)は、このコードがあります。WebSocketがsocket.ioに接続していません

var http = require("http").createServer(), 
io = require("socket.io").listen(http); 

http.listen(8080); 

io.sockets.on("connection", function(socket) { 
     socket.emit("message", {hello:"world"}); 
}); 

をそして、これは私がに接続しようとしているコードです:私は、ページをロードすると

var socket = new WebSocket("ws://92.60.122.235:8080/"); 
socket.onopen = function() { 
    alert("Socket has been opened!"); 
} 

、何も起こりません。私はChromeを使用しています。ウェブソケットがサポートされていることはわかっています。エラーコンソールにはエラーはありません。また、socket.ioがコマンドラインから要求を処理しているのを見ると、ユーザーが接続していないことがわかります。

私はこれがうまくいくと知っている限り、誰かが何がうまくいかないのか説明できますか?

+1

なぜsocket.ioクライアントを使用していないのですか?私は彼らに何らかの認証があると信じているので、これはうまく動作しません。 –

+0

ああ、私もクライアントを使用する必要があることを認識していませんでした。私はあなたにお返ししようとします。 –

+0

申し訳ありませんが、私の他のすべてのスクリプトの上のscriptタグにsocket.ioを追加しましたが、それでも動作しません。以前と同じ問題。サーバーが実際にsocket.ioクライアントスクリプトを提供しているかどうかを確認しました。 –

答えて

6

私が信じるいくつかの認証段階に合格するには、socket.ioクライアントが必要です。これを試してみてください。それはうまくいくはずです(クライアントのjavascriptはsocket.io自体によって提供されますが、心配しないでください)。 http://socket.io/#faq

から

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('message', function (data) { 
    console.log(data); 
    socket.emit('helloworld', { msg: 'why do you so love to say hello world?' }); 
    }); 
</script> 

なぜだけではなく、実際のWebSocketは 存在しない場合WebSocketそれを呼び出し、そのAPIを模倣? WebSocketは、トランスポートとして選択され、ユーザは超近代的なブラウザで あなたのウェブサイトを閲覧していても 場合

Socket.IOは、WebSocketをだけではありません。 のハートビート、タイムアウト、および切断のサポートなどの特定の機能は、リアルタイムでは のリアルタイムアプリケーションにとって不可欠ですが、WebSocket APIではデフォルトでは提供されません。

これは、XMLHttpRequestを正規化するのではなく、機能豊富な 単純な$ .ajax APIを作成するjQueryの決定に似ています。

+0

ありがとう、私はsocket.ioクライアントスクリプトを追加しようとしましたが、実際にそれを使用するようにコードを変更するのを忘れました。 io.connectとsocket.onなどを使うと完璧です、ありがとう:) –

+0

alFReD NSHが正しいです、@Martin HoeはWebSocketのネイティブサポートを持っているいくつかのブラウザでしか動作しないので、 FFで動作しません)。 – alessioalex

+0

これは、クロスブラウザ、クロスドメイン、クロス...、どこでも動作するsocket.ioの最も良い点です。それはWebSockets以上のものです。 –

0

ハイレベルロジックプロジェクトのブログ記事「Websocket Server Demonstration」で、Chrome、Firefox、およびIEで実行されるウェブページのソースコードをダウンロードできます(少なくとも)。ウェブページは開発者用に設定されています。

関連する問題