GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
I've been working on updating our fork of this client over at https://github.com/Lullabot/irc. I'm at the point of reviewing the upstream changes since we forked, and they look to be rather drastic. It's not clear to me what the goal of all of the changes has been, especially with the removal of irc-js. I can't seem to spin up the node server at all based off of the latest master.
Any pointers would be greatly appreciated!
Using the original implementation, a webclient would connect to the irc.nodester app that would employ irc-js to connect (over node sockets) to the real irc server. The irc.nodester app would become the "engine" keeping the communication together.
As the webclients would increase in number, a decrease in performane was observed on the webclient end. I do not know the cause of the performance loss/slowness and I cannot say for sure that enough work was done to understand the cause of the performance decrease.
Due to this performance drop, the current solution emerged. In the current solution the "engine" is the js running in the webclient browser, and the irc.nodester acts as a proxy relaying messages from the webclient (web sockets) to irc server (node sockets) and viceversa.
Further solutions were explored at the time, using queues (a can explain that if anyone interested, I may have the documentation I wrote and the code), but there was a problem pertaining to nodester and node sockets (receiving motd was one triggering factor) and the side effect was that all websockets connection would die at the same time. An automated "reconnect" was implemented as a workaround until this en mass websocket drop would be solved.
If more info is needed or a re-write is intended I would be happy to share the things I tried or I know about this app.
As for the status of the project, I am not aware of any short term plans.
If I would be to look again at this project, I would write a few test apps running on nodester server, and I would try to understand the root cause of the original performance drop. These test apps might require some collaboration that in my experience is very easy to obtain from the irc.nodester community.
Thanks for the summary. I'll see if I can replicate the performance issues and work from there.
The symptom we observed was that the motd would arrive line by line at the webclient. The motd is sent automatically by the irc server on connect. And it is sent in block at max available speed, not line by line.