Question: What is socket.io module?
Socket.IO is a JavaScript library for realtime web applications.
It enables realtime, bi-directional communication between web clients and servers.
It has two parts
a) client-side library that runs in the browser.
b) server side that run in browser.
Question: Give example of real time application?
- Instant messengers like facebook notification/message.
- Push Notifications like when someone tags you in a picture on facebook, you receive an instant notification.
- Collaboration applications like multiple user editing same file.
- Online gaming
Question: Why we use socket.io?
- bi-directional communication channel between a client and a server.
- When an event occur, socket get notify and let to know the single client OR all clients.
- It is trust application and used by Microsoft Office, Yammer, Zendesk, Trello, and numerous other organizations.
Question: How to install socket.io in Web and Server?
In Browser (client)
In NodeJS
npm install socket.io
var io = require('socket.io')
Question: How get to know, if user is connect/disconnect?
In Server(Node)
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendfile('index.html'); }); //Whenever someone connects (execute when come in Web page) io.on('connection', function(socket){ console.log('A user connected'); //Whenever someone disconnects (execute when Leave the web page) socket.on('disconnect', function () { console.log('A user disconnected'); }); }); http.listen(3000, function(){ console.log('listening on *:3000'); });
In Browser
var socket = io.connect('http://127.0.0.1:3000');
Question: How to get to know, when new user comes in browse?
OR
Question: How to send message from Client(Browser) to Server(Node)?
In Server
socket.on('adduser', function(name, email, uid) { //name, email, and uid of user console.log('New user comes in web page'); });
In Browser>
socket.emit('adduser', 'Robin Sharma','robinsharma@no-spam.ws',2555);
Question: How to send message from Server(Node) to Client(Browser)?
In Server
socket.emit('newRequestCome', 'name','myself send request'); //Send message to socket (Same window) socket.broadcast.to(roomName).emit( 'newRequestCome','name','message'); //Send message to all socket (Other windows in same Room)
In Browser
socket.on('newRequestCome', function(name, message) { });
Question: How to join the room and send message?
Join the room
io.on('connection', function(socket){ socket.join('someNo12'); });
Question: How to send message the room?
Send message to the room
io.in('someNo12').emit('some event'); //io.to('someNo12').emit('some event');