对comet的一些思考

哎, 天朝这么大, 对comet的研究的文章却少之又少. 所以目前我除了知道一些可以实现comet的框架之外, 不知道他们是如何实现的, 可以不可以在现有的app 服务器上做一些框架就可以实现, 而不需要实现什么协议.
comet是基于ajax之上的, 或者说基于httpxmlrequest之上的, 实现原理如下:
客户端:发送XHR请求, 一有数据返回就进行处理并继续发起下一个XHR请求, 如此反复.
服务器端:接到来自客户端的请求后, 不是马上返回数据, 而是阻塞着, 等到有需要返回数据的时候(如数据的更新)才返回给客户端.
客户端的技术很容易做到的, 就一个递归的调用, 但服务器端如何做到等到数据的更新, 我想这里其实可以引入事件模型, 就是服务器端注册一系列的事件, 使用线程侦听事件, 当事件触发的时候设置返回值, 并促发服务器返回数据.
目前在我脑钟有点想法, 画了个草图, 准备找一天把他实现一下, 也不知道这种想法是不是正确的. google comet信息会比较多, 可惜英文比较难读懂呐.汗.

加油!

分享到:

发表评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

沙发空缺中,还不快抢~