19 comments

[ 2.5 ms ] story [ 51.0 ms ] thread
How does this compare to subway?

https://github.com/thedjpetersen/subway

Seems like both of them require as server. Something I think means the title is misleading about. It's certainly ambiguous. I was excited to see a browser based, all client side IRC client. Oh well.
I'm not sure I see how you can connect to an irc server directly from the browser without some sort of proxy. You can't do TCP from js.
What about WebSockets, aren't they TCP?
Not directly. More like TCP-like messaging over HTTP. The server needs to understand the websockets protocol.

Writing a basic server that strips the websockets part from messages and forwards them to a real TCP server isn't very hard, but it's still a server you need.

It's not really "over HTTP", it's just an HTTP handshake:

  The WebSocket Protocol is an independent TCP-based protocol.  Its
  only relationship to HTTP is that its handshake is interpreted by
  HTTP servers as an Upgrade request.
http://tools.ietf.org/html/rfc6455#section-1.7
FWIW the System Applications Working Group at the W3C is working on a Raw Sockets spec for the browser, but I don't think a final draft will be ready until 2014. Adoption across most browsers will then take a little longer.
nirc is not near as feature rich as subway at first glance. There's no logging(bouncer) when you disconnect or multi users. However, you can simply open a new tab and connect to another irc server.

Also, it looks like subway has a userlist in the ui. That's something that could be added to nirc easily I think. You can still message users using the "/msg USERNAME" command.

This reminds me: why is Subway still using a stolen logo?
Any reason you have node-irc in the lib instead of npm installing it as a dep?
We started customizing it and felt like it would be easier to just house the module within the app itself. None of the customizations would have made good contributions to the module for others.