Socket.io NodeJS Express And Http to Create Real time Chat Web Application
NodeJS
Socket.io
Express
Chat
Web
Application
- By Code solution
- Jan 20th, 2021
- 0 comments
- 1
Socket.IO enables real-time bidirectional event-based communication.It works on every platform, browser or device, focusing equally on reliability and speed.there are core feature of socket.io
- Real-time analytics
- Instant messaging and chat
- Binary streaming
- Document collaboration
See Demo : https://www.youtube.com/watch?v=piuE5rbaQhU
Creating a real-time server:
To start with, create an empty directory named sockectapinodejs:
mkdir sockectapinodejs
then move inside the newly created directory:
cd sockectapinodejs
Then Run initialize the package.json by running Command:
npm init
We also need to install Socket.io, which is the main dependency of our project, ExpressJS,Http.
npm install --save socket.io express http
Creating a real-time server: the code
Create a file named server.js inside your project’s directory. This will hold the actual server
// Import all our dependencies
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
// tell express where to serve static files from
app.use(express.static(__dirname + '/public'));
server.listen(9992);
console.log('It\'s going down in 9992');
// allow CORS
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
next();
}
});
app.get('/', function(req, res) {
//send the index.html in our public directory
res.sendfile('index.html');
});
A result from this code :
Working WebSocket using this now you have setup nodejs and socket.io.
//Listen for connection
io.on('connection', function(socket) {
socket.on('chat message', function(msg){
io.emit('chat message', msg);
}); });
Working Real-time chats web Application. :)