Anyway, that was an aside - today I'm announcing our new 'Instant Messaging' (IM) extensions to the chat system!
The 'Instant Messaging' system is very much built on 'AJAX', and is probably one of the most sophisticated examples of it you could find. The 'choose a chatroom' screen of old is now called 'The lobby' and it features a buddy list of members (each member gets their own buddy list)… this buddy list is updated from the server, so you can see when members sign in or sign out. You can start IMs with anyone on your buddy list, and you may also do group IM sessions… it's very simple, you just select some members and click a button. You can also block members, so that they can't see if you are online in ocPortal (the users-online displays throughout ocPortal are aware of the blockings). You can even set up ocPortal to behave like a giant IM-centralised system, so that you can start IMs with anybody just by clicking their username as it appears anywhere in ocPortal.
IMs are done in tabs, so you can actually have more than one going on at once, without having to close the browser window. If you accidently close the browser window, or lose your connection, it's not a problem - the session persists until you close it, and will come back as soon as you revisit the lobby. If someone starts an IM with you and you're in your lobby, a new tab will magically open on your own computer. If you're not in the lobby, you'll be sent an e-mail and the person chatting to you will be aware that you are 'away' until you arrive.
There's an alert system - when people sign in, a little alert will be displayed in browser window as if from nowhere. Also, on some browsers, the window will flash and a sound ping, when you get new messages.
All this is powered by a multiplexed XML messaging stream sent out by the server to all clients in the lobby. The stream is aware of all events that go on in the system that relate to each individual member as well as the IM state that member is in (i.e. who they're talking to, in what tabs).
Later on May 31st… The first public version of ocPortal 3.0 will be released! We've been testing this for a month now, passing it through all kinds of automated testing, formal testing, private site testing, and live site testing on select locations… it's actually very stable now .
I'm writing this at 2:36 in the morning after running some final tests… I've just finished testing the upgrader. We know it's relatively safe to upgrade a 2.6 site to ocPortal 3.0. This said, we won't accept responsibility for failed upgrades to betas, so make sure you keep backups, and we won't ever recommend upgrading a live site incase there are other problems (such as unforseen performance problems).