unplug the client from socket.io ID

Is it possible to have a client leave a room using just the socket ID with the io object?

io.sockets(specificSocketID).leave('sampleroom');

The documentation mentions using the leave method with the socket, but I am looking for a way to achieve this with the io object instead. Can anyone provide guidance on how to make this work?

Answer №1

To keep track of incoming sockets, store them in a custom object.

var socketList = {};
io.on('connection',function(socket){
    socketList[uniqueID] = socket;
    io.on('disconnect',function(){
        delete socketList[uniqueID];
    });
});
//subsequently, easily access and interact with specific sockets by their IDs
socketList[uniqueID].join('specialRoom');
socketList[uniqueID].leave('specialRoom');

Answer №2

One approach, suggested by @tresdin, is to save socket ids along with the io object, but in reality, we may not require it. Instead, we can simply utilize a specific socket id like

io.sockets.sockets[specificSocketID].leave('sampleroom');

Answer №3

If the version is above 3.0

io.sockets.sockets.get(specificSocketID).exit("sampleroom");

If the version is below 3.0

io.sockets.sockets[specificSocketID].exit("sampleroom");

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Applying a CSS transition to transform properties excluding rotation effects

I'm looking to apply a transitional animation to an element's transform property without affecting the rotation. Here is the code snippet: <html> <head> <link rel="stylesheet" href="style.css"> <script src="script.js ...

Provide two values and complete the third one

I have a form with three input fields. I want to fill out two of the fields and have the third field automatically filled in. Here is how it should work: - I fill out the first and second fields, and the third field calculates itself - I fill out ...

Protractor: Decrease the magnification

Currently, I am working with protractor and facing the challenge of zooming out to 50%. Despite trying numerous solutions found on StackOverflow, none have successfully resolved the issue. Some attempted solutions include: browser.actions().keyDown(protra ...

When the oncuechange event is triggered, it initiates a smooth fade-in/fade-out animation within the HTML P tag

Just starting out with web development and learning JavaScript. Trying to create a webpage that displays lyrics synced with an audio file inside a p tag. The subtitles are sourced from a vet file extension and I am using the "cuechange" event in JavaScript ...

Combine the date and time into one variable

Is there a way to save the date and time fields in a variable with the format: 0000-00-00T00:00:00.000Z? component.html <mat-form-field appearance="outline" class="pr-sm-8" fxFlex="50"> <mat-label>Fecha Inicio ...

Tips for managing state updates in React Redux

Currently, I am utilizing a reducer to manage the state in Redux. The current structure of my state is as follows: { activeConversation: "Jim" conversations: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}] user: {id: 8, username: &quo ...

Responsive DataTable in Bootstrap 5 automatically hides columns to ensure optimal display on different

Is it possible to create a responsive table using DataTable 1.13.4 and Bootstrap 5.2.3? I encountered an issue while testing the table on a mobile device (using Firefox, not an actual device) where a small horizontal scrollbar appears, causing some columns ...

Utilize JQuery to display a modal dialog within a pre-existing modal dialog

In my project, I am currently utilizing JQuery version 2.1.1 and JQuery UI version 1.11.0. My aim is to open a modal dialog within another modal dialog, with the primary (parent) dialog being disabled. While both dialogs have their modal properties set to ...

JQuery fails to retrieve accurate width measurements

Utilizing this code snippet, I have been able to obtain the width of an element and then set it as its height: $(document).ready(function(){ $(".equal-height").each(function(){ var itemSize = $(this).outerWidth(); cons ...

Refreshing PHP code automatically within a JavaScript function

Currently working on a Pi project to create a monitoring web page for tracking power readings from a meter. Adding some aesthetic gauges using canvas-gauges (). A python script running in the background fetches data from the meter and saves it to a file e ...

Concealing a div element within HTML using JavaScript Document Object

Can anyone assist me with hiding a div element using JavaScript in my game development project? I must be making an error somewhere, but I'm not sure what it is. Here is the code that I have: HTML: <div id="stats"> <table border="1"> ...

Error encountered with Content Security Policy while utilizing react-stripe

I am currently in the process of developing a React application that incorporates Stripe payments utilizing the @stripe/react-stripe-js (version "^1.9.0") and @stripe/stripe-js (version "^1.32.0") npm packages. While the payments are functioning correctly, ...

Refresh numerous pages

Currently, I'm working on a freelance project where I've been tasked with re-coding an outdated menu for my client. The website is built on static pages, so updating the menu manually on each page seems like a time-consuming and repetitive task. ...

Is the `ng-model` for the AngularStrap `bs-typeahead` component not accessible in the current scope?

I am encountering a problem with the ng-model value in an element that uses AngularStrap's bs-typeahead. It seems to not be accessible within the scope, but it works fine when accessed using {{ var }} in the HTML. Here is the HTML code: <input ty ...

Is it possible to create a component with a button that triggers the rendering of a different component?

I am struggling to implement an 'edit' button within a component that, upon clicking, should display a separate component known as a 'client edit modal'. I'm facing challenges in figuring out how to achieve this functionality. The ...

Retrieve JSON array object values by iterating through each element using $.each

Here is how my JSON data is organized: [{ "industry": [{ "Supermart": [{ "merchant": [{ "name": "Lazada", "banner": "abc.com/img.jpg", "url": "http://lazada.com.my" }] ...

Spinning a point around the center on a canvas

My friend and I are in the process of creating a game, and we've reached the point where we want to implement a radar system. While we have successfully designed a basic radar that displays everything in the correct positions, our next challenge is to ...

Modify the background color of the body when hovering over items in the unordered list using CSS

How can I modify the background color of the body when I hover over ul li using CSS? ...

Transfer information from a server to a client using the fetch API in pure JavaScript

Hey there, I've been working on a mini app that sends a fetch request to the backend and expects some information in return when a button is clicked. However, I'm facing an issue where the fetch call seems successful with a 200 status, but the d ...

Unlocking the power of module augmentation in Typescript: Enhancing library models within your app domain

I currently work with two applications that share the same code base for their models. I am interested in developing and sharing a library model using inheritance in TypeScript. For instance, Pet extends Author. In my current Angular application, I need ...