me_astr
me_astr

Reputation: 1042

socket connection closed before receiving a handshake response

I have written code for socket from :source

My code looks like this.

var port = 8081;
var app = require('http').createServer();
var io = require('socket.io')(app);
app.listen(port);

io.on('connection', function (socket) {
    console.log("New user connected.");
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});
console.log("server listening on: " + port);

But when I am testing it on here (ws://localhost:8081). I am getting ERROR: undefined DISCONNECTED

In console I am getting error:

WebSocket connection to 'ws://localhost:8081/?encoding=text' failed: Connection closed before receiving a handshake response

Upvotes: 4

Views: 13896

Answers (1)

cviejo
cviejo

Reputation: 4398

You need to use the socket.io client library, either getting it, from here, or referencing their CDN from your page like this:

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

Additionally, whenever you start a socket.io server, socket.io will be served from http://<your-server-address>/socket.io/socket.io.js. You should be able to test your server using this simple page:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="http://localhost:8081/socket.io/socket.io.js"></script>
        <script>
            var socket = io('http://localhost:8081/');
            socket.on('news', function (data) {
                console.log(data);
                socket.emit('my other event', { my: 'data' });
            });
        </script>
    </head>
    <body>
    </body>
</html>

You can read more about why you can't connect from the websocket.org site on this github issue.

Upvotes: 3

Related Questions