Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

creating room in ws nodejs

const rooms = {};

wss.on("connection", socket => {
  const uuid = ...; // create here a uuid for this connection

  const leave = room => {
    // not present: do nothing
    if(! rooms[room][uuid]) return;

    // if the one exiting is the last one, destroy the room
    if(Object.keys(rooms[room]).length === 1) delete rooms[room];
    // otherwise simply leave the room
    else delete rooms[room][uuid];
  };

  socket.on("message", data => {
    const { message, meta, room } = data;

    if(meta === "join") {
      if(! rooms[room]) rooms[room] = {}; // create the room
      if(! rooms[room][uuid]) rooms[room][uuid] = socket; // join the room
    }
    else if(meta === "leave") {
      leave(room);
    }
    else if(! meta) {
      // send the message to all in the room
      Object.entries(rooms[room]).forEach(([, sock]) => sock.send({ message }));
    }
  });

  socket.on("close", () => {
    // for each room, remove the closed socket
    Object.keys(rooms).forEach(room => leave(room));
  });
});
Comment

PREVIOUS NEXT
Code Example
Javascript :: ./node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.js 
Javascript :: hide console log level in js 
Javascript :: how to get the value of AutoCompelet Component in MUI 
Javascript :: dayofmonth mongodb 
Javascript :: array destructuring by using spread operator from a nested object in javascript 
Javascript :: how to check for special charaters with spaces javascript 
Javascript :: display text on button click react 
Javascript :: json server start code 
Javascript :: rename column infotable thingworx 
Javascript :: react useState update object in array of objects 
Javascript :: how to reload automaticaly in vue 
Javascript :: electron open dev tools 
Javascript :: Regex for number divisible by 5 
Javascript :: jquery creating several items 
Javascript :: buscar una frase e un string js 
Javascript :: object.create() js 
Javascript :: angular get route last segment 
Javascript :: js similar jquery document ready 
Javascript :: jquery get data attribute value by class 
Javascript :: react firebase add doc to collection 
Javascript :: javascript subtract years from date 
Javascript :: linux command to install standard js 
Javascript :: angular generate validator 
Javascript :: add update react pwa feature 
Javascript :: map within a map javascript 
Javascript :: how to get 3rd li using jquery 
Javascript :: flask sqlalchemy json 
Javascript :: use localstorage react hook 
Javascript :: strapi v4 populate 
Javascript :: use effect hook 
ADD CONTENT
Topic
Content
Source link
Name
2+7 =