有没有办法在客户端通过JS实现HTTP长连接

如题所述,我在一个特定的服务器需要频繁的请求数据,一直建连请求,建连请求这会有很大的开销,不知道JS有没有办法实现HTTP长连接,后面的数据请求就一直复用这个连接的通道?(忽略websocket)

能不能只通过客户端JS来实现…

可能第一次问的时候没有表述清楚,其实需求是这样子的:

通过一个http请求跟服务器建连,同时服务器返回数据但是不断开这个http的连接,后面客户端可以继续通过这个http连接进行第二次第三次的请求,然后客户端同时维护两个这样的http连接,轮换使用这样子的,有什么有效的实现方法么?

websockt ?

使用websocket

websocket

websocket.io

http1.1默认已经开启keep-alive,除非服务器主动写入connection-close到header才会关闭连接。所以你的担心是多余的。
你可以通过CRUL命令检查keep-alive是否正常。

curl -Iv http://www.baidu.com 2>&1 | grep -i 'connection #0'

长连接正常时将显示下面的输出

* Connection #0 to host www.baidu.com left intact

Connection… left intact表示服务器没有关闭连接,客户端可以复用连接。

不想用websocket就用长轮询。

消息量一般使用websocket足够,要高端可以考虑 阿里开源的 RocketMQ

  • 关于redux 连接多个reducers 即combinereducers的问题?
  • jQuery动态添加script标签
  • keyup事件使用中文输入法谷歌与火狐、IE兼容问题
  • 参数有问题?{data,handleChange}
  • js post引起的500错误???
  • bootstrap 的fileinput上传图片调不到接口怎么回事?
  • JavaScript中propertie和attribute的区别
  • express+ejs 如何禁用缓存
  • 学习React.js有没有推荐的书籍?
  • js的一个小问题?
  • 类似于Evernote,盛大麦库那样的网页内容集实现原理是怎么样的?