首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现服务器端推送,使客户端不会错过来自服务器的任何推送?

如何实现服务器端推送,使客户端不会错过来自服务器的任何推送?
EN

Stack Overflow用户
提问于 2011-01-10 01:05:58
回答 2查看 1K关注 0票数 1

我必须开发一个实时的web应用程序,在这个应用程序中,如果有什么不好的事情发生,服务器需要通知所有的客户端。

至关重要的是,客户端绝不能错过任何警报,即即使客户端暂时停机,如果它再次联机,它也必须接收任何发送的警报。

请问如何落实这个机制呢?客户端的数量非常少(5-10),因此性能/带宽可能不是问题。

编辑

完全没有意识到客户端必须在(几乎)实时接收警报,所以电子邮件可能不是最好的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-10 02:34:34

有两种可能的办法:

  1. 让客户端确认每个接收到的警报,并跟踪服务器上每个客户端的状态。requirements.
  2. Dumb客户机/智能服务器的带宽稍高一些。
  3. 的服务器要复杂得多。
  4. 为服务器提供了“真正的推送”(实时二进制流之类的东西)的完全控制和supervision.
  5. Good,如果这是place.

中的内容的话。

  1. 时间戳或其他唯一标识每个警报,让客户端告诉服务器最新的已知时间戳是什么,并让服务器制定一个适当的响应,以使客户端更新。approach.
  2. Dumb服务器/智能client.
  3. Server不一定知道每个客户端的状态。适用于轮询式architecture.

的连接dropout.

  • Better之后,

  • 很容易重新同步。

最优可能介于混合解决方案之间。

票数 4
EN

Stack Overflow用户

发布于 2011-01-10 02:14:44

据我所知,你实际上无法推到你的网络客户端。

假设您有一个客户端列表(在服务器上),那么每次您有消息要发送时,记录它需要在数据库中针对每个客户端读取的事实。

用一些JS编写客户端应用程序来轮询服务器,询问未读消息。显示未读消息,然后回复确认。

为此,你将需要

  • 数据库,包含所有客户端、所有消息和给客户端的消息状态矩阵(读取/确认)。( a)获取给定客户端的所有未读消息,b)确认给定客户端的消息。polling
  • Dynamically客户端的
  • Ajax类型的内容更改HTML以显示返回的任何消息。
  • Ajax类型的内容可以让服务器知道您已经显示了消息,并且不再为该客户端检索消息。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4642911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档