Monday, February 26, 2007

WebIRC?

Unfortunately, webirc.blogspot was already busy, so I had to devise additional letters for the blog title.

Well, what's it all about?
Blog is dedicated to WebIRC - IRC Web client. Actually, so many different IRC clients have been propagated, and web clients aren't the exception. Web clients may be divided into several types:
  • Java applet
  • Flash
  • Written in usual HTML (DHTML)
Concerning first two types it is clear - they use additional plug-ins for the web-browsers, not server-based instead. The third type doesn't need any additional plug-ins by the client side and could be run in nearly every browser. Usually the third type is completed in such way: IRC command processing server-side, written in PHP, CGI-BIN (or something else), and very delicate web-client. As yet, I've encountered two such clients: the first is CGI:IRC, and the second: of the second, the author didn't neither give it name nor share it.

CGI:IRC - is an easy enough client, using COMET technology for data receiving from server.

The second client - much good-looking than CGI:IRC, but meanwhile raw version shared by author, which I even couldn't run properly. (In Opera it refused to start in the least).

WebIRC practically means JavaScript client written using Google Web Toolkit. The whole IRC commands proceeding realizes on the server-side, that is to say - in the user's web browser. I said "practically" only because of the JavaScript run in the browser can't connect IRC independently. :) For this reason small-sized server-side insists, and theoretically :) requires a bit resources (merely it wasn't tested in real conditions yet). The server-side is used as a thread between a web-client and the IRC server. In other words, performs connecting to the IRC, stores messages received from the IRC server (messages are transferred to the web-client while it processes synchronization) and sends outgoing messages from the web-client. Meanwhile, the server-side is developed in Java and might be used in any servlet container (for example, Apache Tomcat), but there is no difficulty to make a server-side using alternative technology, as PHP, .NET or CGI-BIN.

Already realized features list:
  1. Smiles. :) Smiles description are stored in xml file, so it's quite easy to add new or to modify existing smiles. The smile itself is described with RegExp mask.
  2. Aliases. Also stored in xml file. At the time, there are only few aliases. (/msg, /me, /slap)
  3. Sounds. Meanwhile there're two sounds played: after WebIRC loading and when receiving a private message.
  4. Text colors and styles (bold, italic:). Now only non-reversible, I mean, colors are displayed in messages received from other clients. Soon it will be possible to "embellish" messages in WebIRC. :)
  5. CTCP commands support.
  6. Possibility to make skins(templates) easily and to build into the completed website.
  7. Maybe something I get out of mind. :)
I strive to make WebIRC easy enough client for common users never met the IRC to be able chatting without ruffle or excitement.

WebIRC will be an opensouce, and I'll share sources at code.google.com.

You can have a look at WebIRC on this link. And here you may see different, more simply skin.