HTTP可以用来跟踪连接吗?
本文关键字:连接 跟踪 HTTP | 更新日期: 2023-09-27 18:03:18
我知道关于HTTP是严格面向连接还是无连接存在一些争论。据我所知,HTTP只维持一个足够长的连接来传输一系列即时请求。最近,我和一位微软认证架构师讨论了一种向"连接"的客户端广播更新的方法。
想象一个跳棋游戏。如果player1移动,player2需要被通知。对于HTTP(没有TCP/UDP),我所知道的唯一方法是轮询。建筑师不同意我的意见。
那么,如何仅使用HTTP向"连接"的客户端发送更新呢?
目前有两种解决方案:
- WebSockets提供了一个真正的回调,但没有被广泛采用
- 使用Comet实现(如WebSync)。
在HTTP级别,您可以通过不指定Content-Length或关闭连接来流式传输客户端可以接收的数据。一些客户端/服务器有一个"无数据"超时,所以发送一个周期性的keepalive是一个好主意。但是,应答需要在另一个HTTP请求中。
流的扩展是客户端建立连接,服务器不发送任何数据,直到有准备好的东西。然后,客户端处理应答并立即再次连接以获取下一个数据块。