The ability to update parts of the page without a refresh using AJAX is useful to me, but from what I understand it has to be initiated from the client side - I need to be able to update a page without the user doing or clicking on anything (triggered by another user).
I actually looked into websockets briefly after someone suggested using HTML5, and it seemed like a good solution. However, it looks like due to a vulnerability this feature won't be supported for the time being by most browsers (http://en.wikipedia.org/wiki/WebSockets#Browser_support
Here's another option I've been playing with recently -> Channel API
I'd never heard of this before, or even had a proper look at the Google App Engine. Very interesting, and I wish I'd known about this before. But, although this solution seems perfect for what I want to do, it looks like I would have to write the thing in Java/Python (neither of which I'm comfortable coding in yet).
Since HTTP is connectionless, a few techniques have been devised to create a semblance of a maintained connection. I don't have a ton of time to write the response I'd like, but two things to look into are long polling and pushlets.http://en.wikipedia.org/wiki/Push_technology
If timing is not absolutely critical, I'd use a polling method, perhaps sending a poll every .5 seconds.
I had a brief look at pushlets, and to be honest I'm not sure I understand it (yet).
I would love nothing more than to play around with these different methods... The only problem is time, or rather a lack of it. I'm getting close to a deadline for this, and the basic framework is already partly built, so I can't re-do the whole project or learn a new (non-ridiculously-simple) method.
Although it's not the most elegant way, it looks like I'll stick to some kind of long-polling and AJAX.
Thanks for the info guys, much appreciated.