Skip to content

Instantly share code, notes, and snippets.

@fahimbabarpatel
Last active March 5, 2017 09:15
Show Gist options
  • Save fahimbabarpatel/62c840afd84c9f4bf8184d84f5d6ea0b to your computer and use it in GitHub Desktop.
Save fahimbabarpatel/62c840afd84c9f4bf8184d84f5d6ea0b to your computer and use it in GitHub Desktop.
Socket.io covered
npm install --save socket.io

---------------------------------SERVER CODE START------------------------------------------
var express = require('express');
var app = express();
var server = http.createServer(app);
io = require("socket.io").listen(server);
server.listen(3000)

io.on('connection',function(socket){

  socket.on('join', function (state) {
    var rooms = io.sockets.adapter.sids[socket.id];
    for(var room in rooms) {
      socket.leave(room);
    }
    socket.join(state.id);
  });
 
  socket.broadcast.emit("broad_cast", object_to_pass); //Sended to all clients
  
});

app.use('/api/v1/countries', require('./routes')(io) ); //pass io object to route file for further uses
---------------------------------SERVER CODE END------------------------------------------

---------------------------------HTML CODE START------------------------------------------
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect({
        reconnection: true,
        reconnectionDelay: 1000,
        reconnectionDelayMax : 5000,
        reconnectionAttempts: 99999
    });

socket.on('connect', function () {
    console.log("socket connected");
    socket.emit('join', object); //pass state obect to whom which you want to join
});

socket.on("broad_cast", function(data){
  console.log(data);
});

socket.on('disconnect', function() {
    console.log('disconnected');
    document.write("<b>Please wait page will reload automatically.</b>");
    setTimeout(function() {
        window.location.reload();
    }, 3000);
});
</script>
---------------------------------HTML CODE END------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment