大家好,我想请问一个用http长连接实现server push的问题。我的server是用c和c++自己开发的,然后用网页发送get请求来建立和server的长连接,我的问题是:
1、如何实现这个http长连接呢?是不是http的头有特殊的写法?
2、如何禁止页面buffer收到的数据?比如js,能否让收到的js立即执行?(我尝试server发一个response,content-length设成很长的长度,然后server发数据来实现长连接,但是ie将收到的js代码buffer起来,并不立即执行,似乎要等到收完或者网络断开才被执行)请大家给一些建议,谢谢
 

解决方案 »

  1.   

    这两天我刚好看到无忧里出了一个贴子: http://bbs.51js.com/thread-65071-1-1.html
      

  2.   

    感谢楼上提供的连接,不过我要做的和他稍稍有些不同,他是用jsp实现server的,到底底层数据怎么走的我不是很清楚,不过我感觉他每次flush发回来的数据都是带着http头的,并且是标明长度的,我现在的问题是我只在第一次应答时带http头,并且设置一个很大的数据长度,后面只发数据,不过这样似乎ie会把数据buffer起来到收齐后才执行,问题就是不知道怎么取消这种buffer机制,有没有人实现过这种方法呢?
      

  3.   

    我的意思是浏览器如果收到的数据还没有达到CONTENT-LENGTH的长度就不交付执行,有没有办法避免这种情况,我看过一个DEMO,是LIGHTSTREAMSER(www.lightstreamer.com)的,它就能做到,不知道它是怎么实现的
      

  4.   

    to:meizz  你给出的那个网址中下载的源码有病毒!!!!!!!!!!