Reputation: 82
I wrote the simple chat application using plain nodejs and Websocket module. Everything works fine, but if the page refreshed connection state changes to closed
and description says that Remote peer is going away
. I know that it standard code of RFC 6455, but why is my connection not updating with the page so the chat continue to work. How to handle page refreshing on client side?
Upvotes: 3
Views: 12079
Reputation: 707328
Refreshing a page in a browser, closes and releases ALL resources associated with the original page and then loads a fresh copy of the page and runs any Javascript in the page again.
So, if your page initialization code includes opening a webSocket to your server, then that webSocket will be closed when the page is reloaded.
This is what will happen upon the initial page load and then a refresh:
How to handle page refreshing on client side?
After refresh, the browser will run the Javascript in your page and that Javascript should just open a new webSocket connection and should establish a new chat connection.
FYI, that code you referenced has at least one bug. For example, the server-side code that removes a client from the server-side index does not work properly. It remembers the index for when the client connection was added to the array and assumes that the index never changes, but that's just wrong. As clients are added/removed from the array and they connect/disconnect that index can change. You're going to have to fix/debug that code if you use it.
While it can be made to work using an Array
, I would probably use a Set
myself and then it would be easier to remove an item too.
Upvotes: 7