Express.js is a web application framework for Node.js. FIrst install nodejs and npm. |
You can install express.js using npm. The following command will install latest version of express.js globally on your machine so that every Node.js application on your machine can use it. Just run the following command npm install -g express |
Now create a directory named Node1 and navigate to the directory from command prompt (for windows) and run the following command will install nodejs express web framework to the following directory. First run npm init to initialize a probject. Then run following command to install express and socketio respectively. npm install --save express npm install --save socket.io |
We then run npm install to get all the dependencies that are needed to run the app. To test the empty application, run node main.js then navigate your browser to http://127.0.0.1:8081. Main.js is as below: |
let app = require('express')(); let http = require('http').Server(app); let io = require('socket.io')(http); // Send socket initialization scripts to the client app.get('/', function(req, res){ res.send(` <script src="/socket.io/socket.io.js"></script> <script> let socket = io(); socket.on('text', (txt) => { console.log(txt); let textp = document.createElement("h1"); let t = document.createTextNode(txt); textp.appendChild(t); document.body.appendChild(textp); }); </script>`); }); // Respond to socket connections with a Hello World text io.on('connection', (socket) => { console.log('User connected'); io.emit('text', 'Hello, World!'); }); // Run our socket-enabled server http.listen(8081, function() { console.log('listening on *:8081'); }); |
io.on('connect', onConnect); function onConnect(socket){ // sending to the client socket.emit('hello', 'can you hear me?', 1, 2, 'abc'); // sending to all clients except sender socket.broadcast.emit('broadcast', 'hello friends!'); // sending to all clients in 'game' room except sender socket.to('game').emit('nice game', "let's play a game"); // sending to all clients in 'game1' and/or in 'game2' room, except sender socket.to('game1').to('game2').emit('nice game', "let's play a game (too)"); // sending to all clients in 'game' room, including sender io.in('game').emit('big-announcement', 'the game will start soon'); // sending to all clients in namespace 'myNamespace', including sender io.of('myNamespace').emit('bigger-announcement', 'the tournament will start soon'); // sending to a specific room in a specific namespace, including sender io.of('myNamespace').to('room').emit('event', 'message'); // sending to individual socketid (private message) io.to(`${socketId}`).emit('hey', 'I just met you'); // WARNING: `socket.to(socket.id).emit()` will NOT work, as it will send to everyone in the room // named `socket.id` but the sender. Please use the classic `socket.emit()` instead. // sending with acknowledgement socket.emit('question', 'do you think so?', function (answer) {}); // sending without compression socket.compress(false).emit('uncompressed', "that's rough"); // sending a message that might be dropped if the client is not ready to receive messages socket.volatile.emit('maybe', 'do you really need it?'); // specifying whether the data to send has binary data socket.binary(false).emit('what', 'I have no binaries!'); // sending to all clients on this node (when using multiple nodes) io.local.emit('hi', 'my lovely babies'); // sending to all connected clients io.emit('an event sent to all connected clients'); }; |
Showing posts with label socket-io. Show all posts
Showing posts with label socket-io. Show all posts
Wednesday, November 20, 2019
Install Express.js web application framework for Node.js with SockeIO
Subscribe to:
Posts (Atom)