0

对于已登录、接收服务器生成的消息的用户来说,实现能力的最佳机制是什么。由于服务器没有办法向用户发送信息,当它有新消息要传递时,用户浏览器应该以特定的间隔轮询,以接收响应新消息,另外,服务器应该有一种方法,不发送已发送给用户的消息。您可以使用公共聊天机制之类的东西建立联系,但我需要的是接近实时的消息延迟以及同时处理大约 100 个用户的能力,从而尽可能减少流量。附加说明:只有当用户在线时才需要数据,不需要将该数据存储在服务器中,以供其他用户阅读“历史”。

在我看来,有一种方法可以实现这一点 - 全局“消息框”,服务器放置所有消息,用户浏览器不断轮询服务器,以检查最后收到的消息 ID 是否等于消息框中的最后一个消息 ID。

问题是,如果这是正确的方法,还是有其他方法可以完成此类任务,因为对实时数据的需求随处可见:传感器数据、多人游戏、聊天、股市等等……

4

3 回答 3

1

推动不是更好的策略吗?保持服务器和浏览器之间的 tcp 连接打开,并在新信息可用时将更改流式传输到浏览器。

看看 html 5 websockets。(正是这样做的)

这是一个演示

于 2011-05-05T10:49:26.557 回答
1

你看过彗星吗?

Comet 是一种 Web 应用程序模型,其中长期持有的 HTTP 请求允许 Web 服务器将数据推送到浏览器,而无需浏览器显式请求它。

如果您搜索 stackoverflow,就会有大量有关其使用的信息。

于 2011-05-05T11:11:25.497 回答