2014-10-16 12 views
5

Ich bin Beginer in Node.js oder Websocket. Ich habe Problem:Node.js socket.io mit Websocket

Mein HTML-Code:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>test</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <script> 
      "use strict"; 
      var gniazdo = new WebSocket('ws://localhost:3000'); 
      gniazdo.onopen = function(){ 
       console.log('Połączono'); 
      }; 
      gniazdo.onmessage = function(m){ 
       console.log(m.data); 
      }; 
     </script> 
    </body> 
</html> 

Mein Node.js Code:

var io = require('socket.io')(3000); 
io.on('connection', function(socket){ 
    console.log('a user connected'); 
}); 

Ich habe Fehler in der Konsole:

WebSocket connection to 'ws://localhost:3000/' failed: Connection closed before receiving a handshake response 

Hilfe plz :)

+0

Socket.io testet zuerst die Verbindung mit Long-Polling und Upgrades auf Websockets, wenn sie unterstützt werden. Sie müssen die socket.io-Clientbibliothek verwenden. –

+0

Thx für Sie Hilfe :) –

Antwort

7

Ihr Client verwendet WebSock ets, aber Socket.IO hat sein eigenes Protokoll (das kann über WebSockets transportiert werden, aber es kann auch über andere Protokolle transportiert werden). Ändern Sie Ihren Client, um Socket.IO eigenen Client zu verwenden:

<script src="https://cdn.socket.io/socket.io-1.1.0.js"></script> 

<script> 

    'use strict'; 

    var gniazdo = io('ws://localhost:3000'); 

    gniazdo.on('connect', function() { 

     console.log('Połączono'); 

     gniazdo.on('message', function (m) { 
      console.log(m.data); 
     }); 

    }); 

</script> 
Verwandte Themen