meebo的快速反映

这几天研究Ajax,让我对Javascript,XML,以及DHTML都有了初步的了解,至少知道他们每一个都发挥了什么作用。只是我想到了一个功能很难实现——快速反应功能,就象游戏一样,对方有反映我这边能马上接收到,对于Web浏览器好像有些比较困难的实现。我所能想到的方法就是每隔一段时间向服务器发送一次信息,比如说5秒,间隔当然要很短,确认是否有新的信息,返回客户端,5秒后再发送一次信息……但这样会对服务器产生很多的资源冗余,如果在线人数很多,会占用很多资源。

我想到了meebo,当我用meebo登录MSN的时候,如果对方给我发信息,我这边能非常即时的得到消息,在他们的一篇Blog中写着:

“To allow fast responses, we simulate event-driven communication between the client and the communication layer. The client pings our servers occasionally to tell the server that the IM session (browser window) is still open. If there are any messages that the client or server needs to communicate, those messages are sent immediately. When there are no events, the communication layer sleeps until it sees a new event that needs to be handled.”

大致意思是说“他们在客户端和交流层模仿了事件驱动交流,当客户端会间断性的时不时的告诉服务器这个窗口还开着,随时接受服务器的信息。如果有任何信息显示需要库户端与服务器交流,这些信息会马上发送。当没有任何事件的情况下,交流层就处于睡眠状态,直到新事件发生。”他说这样做能最小化网络交通。看过后有一点很迷茫,当一个信息发送过去后,服务器只能马上答复,要么有反馈要么无反馈,不可能耽搁一段时间直到有新反馈才回复客户端的,他是怎么让交流层sleep的?迷茫中……有没有高人指点一下?