如何通过http实现服务器和客户端之间的双向通信

Ale*_*ano 3 networking client communication http

我有一个AJAX客户端,必须从服务器接收消息.来自服务器的一些消息不像请求 - 响应类型.例如,玩家可以进入的成像游戏.服务器必须向客户端发送有关玩家进入的信息 但服务器如何在没有客户请求的情况下通过http向客户端发送消息?只有我可以发明的决定:客户端向服务器发送请求(getNewPlayerEnter请求)具有大超时,服务器检查播放器集的状态,如果在设置新玩家,则服务器向客户端发送信息,如果不是服务器'睡眠'一段时间,并且'睡眠'服务器检查玩家再次设置.我觉得我的决定有点愚蠢(也许不小).如何实施呢?
抱歉我的英语

jmo*_*253 5

您所指的是"轮询",您的客户端代码将每隔X秒向服务器发出一次请求以检查更新.

这是一个易于实施的解决方案,这就是您经常看到它的原因.但是,更好的解决方案是使用Comet.

2006年,Alex Russell创造了术语"Comet"来识别一种技术,客户端向服务器发出HTTP请求并且服务器使该连接无限期地保持打开状态.通过此打开连接,服务器可以在有更新时将更新推送到响应中的客户端.

收到响应后,客户端会立即打开一个新的长期HTTP连接.

我鼓励您搜索"Comet"以及您正在使用的任何服务器端语言,以找到一个可以帮助您入门的框架.

Comet Daily有一些非常棒的演示,从聊天应用程序到使用Comet的游戏.如果您有像Firebug或Chrome Debugger这样的工具,您可以观察这些实时应用程序的响应/请求周期.

http://cometdaily.com/2009/10/23/concrete-comet-examples/