Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js socket.io with websocket

I'm begginer in Node.js or websocket. I have problem:

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

My Node.js code:

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

I have error in console:

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

Help plz :)

like image 479
Jarosław Osmólski Avatar asked Oct 16 '14 19:10

Jarosław Osmólski


1 Answers

Your client is using WebSockets, but Socket.IO has its own protocol (that may be transported over WebSockets, but it can also be transported over other protocols). Change your client to use Socket.IO's own client:

<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>
like image 80
ldmat Avatar answered Nov 14 '22 23:11

ldmat