joplin-notes/joplin notion extension/Web Development/nodejs/socket.io.md
2026-11-04 00:33:23 +05:30

1.8 KiB

socket.io

  • Using with http module
      const PORT = process.env.PORT || 8080;
    
      const httpServer = require("http").createServer();
      const socketIO = require("socket.io");
    
      const io = socketIO(httpServer, {
        cors: { origin: "*" },
      });
    
      // when client connects to the server
      io.on("connection", (socket) => {
        console.log(`user connected ${socket.id}`);
        io.emit("requestKey");
    
        // when listening to custom event named 'message'
        socket.on("message", (msgObjs) => {
      	// here using socket.broadcast.emit will send message to all client except the one who originally sent to server
    
      	for (let msgObj of msgObjs) {
      	  const id = msgObj.sid;
      	  io.to(id).emit("message", msgObj.message, socket.id);
      	}
    
      	// socket.broadcast.emit(
      	//   "message",
      	//   `${socket.id.substr(0, 2)} said ${message}`
      	// );
    
      	// to send to all including OP, use io.emit
      	// and for particular client use
      	// io.to(socket.id). emit("event", data);
        });
    

 

  • Using with express
      const express = require('express');
      const app = express();
      const socketIO = require('socket.io');
    
      const PORT = process.env.PORT || 8080;
      const keys = [];
    
      // Serve your application on a specific route using Express
      app.get('/', (req, res) => {
        res.sendFile(__dirname + '/index.html'); // Replace 'index.html' with your HTML file
      });
    
      // Create the HTTP server using Express
      const server = app.listen(PORT, () => {
        console.log(`Server is running on port ${PORT}`);
      });
    
      // Initialize Socket.io by passing the HTTP server instance
      const io = socketIO(server, {
        cors: { origin: "*" },
      });
    
      // Socket.io logic
      io.on("connection", (socket) => {
        console.log(`User connected: ${socket.id}`);
        io.emit("requestKey");
    
        // ... (rest of your Socket.io logic)
      });