Got it.  Now for some testing!

Thanks again.

Ray

On Tuesday, February 23, 2016 at 11:01:23 PM UTC-5, Christopher Mina wrote:
>
> You're welcome.  
>
> As a hint, you can look at this for managing the disconnects:
>
> ws.on('close', function close() {
>   numConnections--;
>   ... alert all remaining sockets ...
>
> });
>
>
> Best of luck.
> Chris
>
> On Tuesday, February 23, 2016 at 7:30:27 PM UTC-7, Ray Jender wrote:
>>
>> Well, with your help, I now have it half working!  It is updating each 
>> webpage for new connections.  Now I have to figure out how to decrement 
>> when a user leaves.
>> I will work on that and let you know.
>>
>> I really appreciate your help with this.  You helped a blind man see!
>>
>> Ray
>>
>>
>> On Monday, February 22, 2016 at 7:51:23 PM UTC-5, Christopher Mina wrote:
>>>
>>> Ok, I finally actually checked out your library to help you a litle bit 
>>> more.  
>>>
>>> It looks like your ws library on the server actually maintains a list of 
>>> open / connected clients, so this is actually pretty trivial.  
>>>
>>> You'll be able to do something like this:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *wss.on('connection', function(ws) {    numConnections++;    var message 
>>> = JSON.stringify({        numConnections: numConnections,        event: 
>>> "numConnectionsChanged"    });    wss.clients.forEach(function(client) {    
>>>     client.send(message);    }); })*
>>>
>>> Now in your client side, you would do something like this:
>>>
>>> ws = new WebSocket(...);
>>> ws.onmessage =function(event) {
>>>     var data = JSON.parse(event.data);
>>>     if (data.event == "numConnectionsChanged") {
>>>         var numberOfConnections = data.numConnections;
>>>         document.getElementById("my-counter").innerHTML = 
>>> numberOfConnections;
>>>     }
>>> }
>>>
>>>
>>> In this solution, you don't really care about the sessions or anything 
>>> else.  You just care about the total number of connected clients, and you 
>>> just want to inform them. 
>>>
>>> Remember, you'll want to handle the disconnect in a similar way. 
>>>
>>> -Chris
>>>
>>>
>>>
>>> On Monday, February 22, 2016 at 5:31:36 PM UTC-7, Ray Jender wrote:
>>>>
>>>> On the client side, I am expecting json?  And I do not have a 
>>>> clientSocket.on?
>>>> What I have is:
>>>>
>>>> ws.onmessage = function(message) {
>>>>         var parsedMessage = JSON.parse(message.data);
>>>>         console.info('Received message: ' + message.data);
>>>>
>>>>         switch (parsedMessage.id) {
>>>>
>>>> There a few different "case" situations like  'Stop', 'Default', etc.
>>>>
>>>> Ray
>>>>
>>>> On Monday, February 22, 2016 at 6:34:14 PM UTC-5, Christopher Mina 
>>>> wrote:
>>>>>
>>>>> That's correct, just a normal array.  
>>>>>
>>>>> I was just showing an example of how to use the array to store a 
>>>>> reference to all open web sockets.  Then when you need to increment, 
>>>>> you'd 
>>>>> just iterate over the array.  
>>>>>
>>>>> e.g. 
>>>>>
>>>>> var myCount = 10;
>>>>> sockets.forEach(function(ws) {
>>>>>     ws.emit("countupdated", myCount);
>>>>> });
>>>>>
>>>>> And your client side code would listen for the "countupdated" event, 
>>>>> something like:
>>>>>
>>>>> clientSocket.on("countupdated", function(data) {
>>>>>     console.log("The new count is " + data);
>>>>> });
>>>>>
>>>>>
>>>>> I'm still not sure if any of this is answering your question, though...
>>>>> -Chris
>>>>>
>>>>> On Monday, February 22, 2016 at 4:22:52 PM UTC-7, Sávio Lucena wrote:
>>>>>>
>>>>>> 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 <rayje...@gmail.com> 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> wrote:
>>>>>>>
>>>>>>>> Thanks for the reply Chris.
>>>>>>>>
>>>>>>>> One of the confusions I am having is trying to impliment something 
>>>>>>>> written for 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/
>>>>>>>> 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 a topic in 
>>>>>>>> the Google Groups "nodejs" group.
>>>>>>>> To unsubscribe from this topic, visit 
>>>>>>>> https://groups.google.com/d/topic/nodejs/DVNUsoEhoRM/unsubscribe.
>>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>>>  nodejs+un...@googlegroups.com.
>>>>>>>> To post to this group, send email to nod...@googlegroups.com.
>>>>>>>> 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.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> Christopher Mina
>>>>>>>
>>>>>>> Live Healthy. Work Hard. Be Kind. Gain Success.
>>>>>>>
>>>>>>>
>>>>>> -- 
>>>>>> 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 nodejs+un...@googlegroups.com.
>>>>>> To post to this group, send email to nod...@googlegroups.com.
>>>>>> 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.
>>>>>>
>>>>>>
>>>>>>

-- 
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 nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/89790f82-0df1-426f-a981-2f9db8c71977%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to