logo
down
shadow

NodeJS & Socket.IO: Emit a request event and get the response, when/where should I bind the listener?


NodeJS & Socket.IO: Emit a request event and get the response, when/where should I bind the listener?

Content Index :

NodeJS & Socket.IO: Emit a request event and get the response, when/where should I bind the listener?
Tag : javascript , By : Manu
Date : November 23 2020, 01:01 AM

Does that help Since the response from the emit should be asynchronous, and the client-side JS is synchronous in nature, the socket.on('auth_succeed' binding will happen before the callback from the auth event.
// EXECUTION SCOPE BEGINS
...
// this will send a message to the server
// the message and/or response will be sent asynchronously
socket.emit('auth', 'John'); 
// so your code will continue before you get anything from the server

//which means the following binding will happen before any response to the above emit
socket.on('auth_succeed', function(id){
  //... handle message from server ...
});
...
// EXECUTION SCOPE ENDS
socket.on('auth_succeed', onAuthSucceed.bind(null, socket));
socket.emit('auth', 'john');

// ... elsewhere ...

function onAuthSucceed(socket, id) {
  // handle message from server
}

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

Can I receive a response from a socket.emit request without setting up a handler for the reponse?


Tag : sockets , By : tangsty
Date : March 29 2020, 07:55 AM
wish of those help This isn't possible given the inherent asynchronous nature of socket communication. As soon as your first 'emit' is called, flow has moved on.
This is mostly desirable as you'd want to avoid 'locking up' your application while it waited to receive a response.

How to emit an event in response to an event using socket.io?


Tag : javascript , By : pacorro2000
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , It appears to be ok. But, just in case, check this answer with all ways of sending data to clients and try use "io.emit" (to send to all clients). Or try sending a string instead of a json object.
I have tried this example here and it is working, just copied and pasted.

How to emit a socket.io response within post request in NodeJS


Tag : javascript , By : Matt Watson
Date : March 29 2020, 07:55 AM
fixed the issue. Will look into that further I have a node server running a react application, integrated with Socket.io. All works fine. I also have an external application that uses the same data. What I want to do is, when the data changes, post to my node server and then in the response, emit to any data to users who are currently subscribed to the socket. , Socket is locally scoped. io.sockets is not, so you can do:
app.post('/api/datacreated/', function(req, res) {
 //this is coming from an external resource
 io.sockets.emit('data created', data);
})

Do socket.broadcast.emit('myMessage', data') emit the message to all clients even if some have not set listener to 'myMe


Tag : javascript , By : Jorge Palacio
Date : March 29 2020, 07:55 AM
Any of those help
Do socket.broadcast.emit('myMessage', data') emit the message to all clients even if some have not set listener to 'myMessage'?

Is it possible to emit a event within a event listener callback for 'newListener' event in nodejs?


Tag : node.js , By : Nigel
Date : March 29 2020, 07:55 AM
it fixes the issue The problem is that inside the newListener a new listener is not yet active. Use the process.nextTick():
const EventEmitter = require('events');
var eventEmitter = new EventEmitter.EventEmitter();

eventEmitter.on('newListener', function(event) {
    if (event === 'data') {
        process.nextTick(() => {
            eventEmitter.emit('data', 'testing');
        });
    }
    console.log('newListener', event);
});

eventEmitter.on('data', function(test) {
    console.log('data', test)
});
Related Posts Related QUESTIONS :
  • How can I make the browser see CSS and Javascript changes?
  • redux how to use state
  • All data in the db is lost when closing a express based node js server
  • How to convert javascript code for Angular
  • XPath select on child nodes
  • Idle event on mouse move - how to stop script permanently on mouse move
  • Why do I get logic is not defined in this code
  • When I enter a number in the input, the first function starts
  • ES6 imports and node_modules hell
  • How to get css selector of clicked-on element?
  • How to auto input MySQL data (input column 1 data to auto input column 2 data with same column) in php?
  • Appending to Datalist Via Javascript
  • Customizing Material-UI Components with Styled-Components
  • Populate elements with class name using Javascript
  • How to execute promises in batches (first resolving 10, then next 10 and so on)
  • Maximo JS automation script: "importPackage" is not defined
  • How to surround selected text inside textarea with <em> on key combination CTRL+i?
  • Your configured registry does not support audit requests ~ On npm audit
  • What's the Angular equivalent of Vue <slot/>?
  • Iconify icon not updating when "data-icon" set with setAttribute()
  • Javascript newbie stuck with XMLHttpRequest return data
  • How to add obj to to state in my example Redux React
  • Loading "grunt-karma.js" tasks...ERROR >> SyntaxError: Unexpected identifier
  • Why do I get log is not defined
  • get the multiple index of the same string
  • How can I iterate over an Array object by using For IN or FOR OF
  • Launch local executable from web browser
  • How to prepare array of json objects to d3 hierarchical tree structure
  • VueJS - event emitted - show HTML before other calculations
  • Export SASS/SCSS variables to Javascript without exporting them to CSS
  • How to attach an event handler only once continuously
  • How to make button open a link in new tab in JavaScript?
  • Find range from the javascript object
  • How can I use my jQuery code as JavaScript?
  • How to show 5 images in a 2 row slider with bxslider
  • How to convert stream into variables in typescript
  • Three.js custom shader error on Chrome GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs
  • My JavaScript doesn't work. How can I solve this problem?
  • Why is this async function is running synchronously?
  • Get updated variable from within react hook before return
  • I want to show all image preview but whenever I upload a new one the old one is gone
  • Would I be able to give access to specific electron APIs safely?
  • Why several clicks fire for each instance of a Class?
  • cant grab value from div using attr()
  • Make web service not accessible by browser?
  • Select DOM elements within template
  • How to customize angular ui-grid row background color?
  • Binding data in two respective $scope in AngularJS, how?
  • react put some props after import class
  • Variable is distributed among same components
  • switch class in jQuery/JavaScript for active/inactive state
  • How To Track Outbound Clicks Using Javascript
  • How to get total seconds elapsed since the beginning of the month?
  • Protractor: Stale element reference at "browser.wait(EC.visibilityOf(confDial), FIFTY_SECONDS);"
  • Access to an array inside an object
  • Reseting an JavaScript Interval with different value?
  • Learning Angular for the first time - version 2 or 4?
  • Rendering RSS feed (XML) in React with jquery, why do object values parsed from the feed seem empty?
  • Node.js xml2js http.request tag matching
  • applying texture to custom plane geometry in Threejs
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com