Skip to content

Instantly share code, notes, and snippets.

@umidjons
Last active October 11, 2016 05:43
Show Gist options
  • Save umidjons/30ef5e0c9e2a93a6dd6db8fa185b7906 to your computer and use it in GitHub Desktop.
Save umidjons/30ef5e0c9e2a93a6dd6db8fa185b7906 to your computer and use it in GitHub Desktop.
Socket.io Client events example

Socket.io Client (Manager) events example

npm i -S socket.io express jquery

File server.js:

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);

app.use(express.static(__dirname + '/node_modules'));

server.listen(80);

app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
    socket.emit('news', {hello: 'world'});
});

File index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Socket.io Client (Manager) Events</title>
</head>
<body>

<div id="log"></div>

<script src="/socket.io/socket.io.js"></script>
<script src="/jquery/dist/jquery.min.js"></script>
<script>
    jQuery(document).ready(function ($) {
        function log(eventName, message) {
            if (typeof message == 'object')
                message = JSON.stringify(message);
            var content = eventName + '>' + (message ? message : '');
            $('#log').append($('<p>').text(content));
        }

        var socket = io.connect('http://localhost');
        socket
                .on('connect', function () {
                    log('connect', 'connected');
                })
                .on('connect_error', function (err) {
                    log('connect_error', err);
                })
                .on('connect_timeout', function () {
                    log('connect_timeout');
                })
                .on('reconnect', function (attempt) {
                    log('reconnect', 'Attempt #' + attempt);
                })
                .on('reconnecting', function (attempt) {
                    log('reconnecting', 'Attempt #' + attempt);
                })
                .on('reconnect_attempt', function () {
                    log('reconnect_attempt');
                })
                .on('reconnect_error', function (err) {
                    log('reconnect_error', err);
                })
                .on('reconnect_failed', function () {
                    log('reconnect_failed');
                })
                .on('news', function (data) {
                    log('news', data);
                });
    });
</script>

</body>
</html>

Sample output:

connect>connected
news>{"hello":"world"}
reconnect_attempt>
reconnecting>Attempt #1
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #2
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #3
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #4
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #5
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #6
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #7
connect_error>{"type":"TransportError","description":0}
reconnect_error>{"type":"TransportError","description":0}
reconnect_attempt>
reconnecting>Attempt #8
reconnect>Attempt #8
connect>connected
news>{"hello":"world"}
reconnect_attempt>
reconnecting>Attempt #1
reconnect>Attempt #1
connect>connected
news>{"hello":"world"}
@aCodeAlchemist
Copy link

helped a lot. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment