Hey Ray, I haven’t been following this thread but from what I can infer of Chris’s answer ’sockets’ is a javascript Array to store and keep reference of each ws instance created, ‘push’ is just adding an instance to it :).
> On Feb 22, 2016, at 2:00 PM, Ray Jender <[email protected]> wrote: > > I am definitely using a particular library, ws. > Is the sockets.push(ws) a valid command for that? I could not find it > anywhere? > > Thanks, > > Ray > > On Sunday, February 21, 2016 at 9:56:05 PM UTC-5, Christopher Mina wrote: > Hi Ray. > > You'll want to keep a reference to each web socket created (in an array or > object hash) and a property on your server or in a database to track the > number of active sessions. When a new connection is made (or closed), you > will increment / decrement the count and then send a message event through > each socket to the client. The client will be listening for that event (eg > "count_changed") and when the event comes through, it will read the new count > off the data payload of the event and render it to the screen. > > I'm not sure if I'm answering your question or not. Maybe you are asking > specifically about the particular library you're using? It seems to me, the > confusion may just be in how you maintain a reference to each open web > socket. > > For instance : > > var sockets = []; > wss.on('connection', function(ws) { > sockets.push(ws); > } > > You can now reference any socket created via this array. You'll want to > ensure you are removing disconnected sockets as well, by listening for a > disconnect event. > > Hopefully this helps. > Chris > > > On Sunday, February 21, 2016, Ray Jen...@ <>gmail.com <http://gmail.com/>> > wrote: > Thanks for the reply Chris. > > One of the confusions I am having is trying to impliment something written > for socket.io <http://socket.io/> to use in ws. > > But that said, I do have code to get the authkey, but I am confused how the > authkey can be used to access the webpage? > > So for code, I have: > > function nextUniqueId() { > idCounter++; > return idCounter.toString(); > } > > wss.on('connection', function(ws) { > > var sessionId = nextUniqueId(); > console.log('Connection received with sessionId ' + sessionId); > > var id = ws.upgradeReq.headers['sec-websocket-key']; > console.log('New Connection id : : ', id); > > So sessionid just counts the number of users, which is what I want to display > on all user pages. > > Right now, each user webpage is only showing what the total user count is > when the user created the ws. > (1,2,3,4, etc). So the first user is showing 1, the second user is showing > 2, and so on, > > So I am confused on how the var id above can be used to send data to a > particular webpage (websocket)? > > > Thanks, > > Ray > > > > On Saturday, February 20, 2016 at 11:48:55 PM UTC-5, Christopher Mina wrote: > Sorry about that half finished post, my last post was sent prematurely... > > What I was getting at is that I now have access to the authkey during the > setup phase. I can use this auth key to query the database for information > about that user and store it. Now I have a way to directly associated the > incoming websocket with a specific user. > > I'll now store the actual websocket instances in one or more hash maps, and > when I need to, for instance, send a single user some information, i can > query that websocket via the socketUserId hash map. Or if I want to send > everyone a message, I'll loop through a list where I keep a reference to all > sockets, and send each one the message individually. This is just one way > of doing it. There are other more appropriate pub/sub mechanisms as well you > could investigate. > > Hopefully that helps a little bit. > -Chris > > > On Saturday, February 20, 2016 at 7:26:54 PM UTC-7, Ray Jender wrote: > > Please bear with me as I am new to websockets. > > So, my problem is keeping track of websocket instances. > I am trying to modify some existing open source javascript code. > > I have server.js, index.js and index.html files. As with any website, > it could have many users browsing the page. There is only a single > webpage. > > The basic operation is: index.html --> index.js --> server.js --> index.js > > What I am having a hard time wrapping my head around is associating the > websocket with the browser. What I want to do is be able to update > each webpage with the number of users. I have googled tons of sites but > I am still very confused on how this should work. > > I've seen a thing like ws.broadcast, but I am having a hard time trying to > implement that. It seems that the way the opensource code I am using > initializes > websockets way different than the examples I am seeing. > > I am using node v0.10.42, npm 1.4.29, express 4.12.4, minimist 1.1.1, ws > 0.7.2, bower 1.4.1 > > I need a tutor to help me through this! Care to volunteer? I would be so > appreciative!!! > > Thanks, > > Ray > > > > -- > Job board: http://jobs.nodejs.org/ <http://jobs.nodejs.org/> > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > <https://gist.github.com/othiym23/9886289#file-moderation-policy-md> > Old group rules: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > <https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> > --- > You received this message because you are subscribed to a topic in the Google > Groups "nodejs" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/nodejs/DVNUsoEhoRM/unsubscribe > <https://groups.google.com/d/topic/nodejs/DVNUsoEhoRM/unsubscribe>. > To unsubscribe from this group and all its topics, send an email to > <>nodejs+unsubscribe@ > <mailto:[email protected]>googlegroups.com > <mailto:[email protected]>. > To post to this group, send email to <>[email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/0b7f961d-35a9-48e4-9dff-d79c9322f9bd%40googlegroups.com > > <https://groups.google.com/d/msgid/nodejs/0b7f961d-35a9-48e4-9dff-d79c9322f9bd%40googlegroups.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > -- > Christopher Mina > > Live Healthy. Work Hard. Be Kind. Gain Success. > > > -- > Job board: http://jobs.nodejs.org/ <http://jobs.nodejs.org/> > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > <https://gist.github.com/othiym23/9886289#file-moderation-policy-md> > Old group rules: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > <https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/0128a2a5-4498-4689-a191-d71981307458%40googlegroups.com > > <https://groups.google.com/d/msgid/nodejs/0128a2a5-4498-4689-a191-d71981307458%40googlegroups.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/458E1F95-A303-46C0-B07D-C902EFF1898A%40gmail.com. For more options, visit https://groups.google.com/d/optout.
