WebSocketがsocket.ioに接続していません

私は自分のページの1つにWebソケットを実装するためにsocket.ioでNode.jsを使用しています。
server.js(Node.jsが実行される)には次のコードがあります:

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がコマンドラインからの要求を処理しているのを見ると、私は接続しているユーザーが見つかりません。

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

ベストアンサー

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

<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>

From http://socket.io/#faq

実際のWebSocketが WebSocket でない場合は、それを単に
WebSocket   そのAPIを提示して模倣しますか?

     

Socket.IOはWebSocket以上の機能を果たします。
  WebSocketがトランスポートとして選択され、ユーザーがブラウズしている場合
  超近代的なブラウザであなたのウェブサイト。特定の機能
  ハートビート、タイムアウト、切断のサポートはリアルタイム性にとって不可欠です
  WebSocket APIによってすぐに提供されるわけではありません。

     

これは、jQueryの機能豊富な
  XMLHttpRequestを正規化するのではなく、単純な$ .ajax APIです。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です