发送消息从服务器到所有客户端

问题描述:

我知道我没有任何代码显示你们,我被困在某个点,我不知道从哪里开始。我希望有人能帮助我。发送消息从服务器到所有客户端

我正在开发一个Spring MVC应用程序,我需要向所有活动会话用户发送一条消息,以执行一个脚本,该脚本可用于所有客户端,因为它是在js文件中定义的并且包含在每个用户中。

我环顾四周,发现了一些框架,它提供了像Atmosphere这些类型的功能,但我不认为它应该用在我的情况中,因为它是一个大框架,所需功能很少。我也浏览了WebSockets,但我无法找到任何有助于我在客户端为所有客户端调用脚本的内容。

如果有人能帮助我走向正确的道路或指引我到类似的例子。我将不胜感激

****更新**** 我也可以使用轮询,如果有方式:如果控制器获取请求会话应被视为空闲期间,例如,有控制器每5分钟呼叫一次,会话时间为30分钟。该会议将不会在这个时候到期,如果用于轮询控制器被称为每隔5分钟,我需要从计算空闲时间排除特定控制器

+0

约一个通用的老式Java解决方案的另一台服务器的网址?相反,如果发送消息,您可以让您的客户端每隔X分钟轮询一次服务器端资源 – chrisl08

+0

我不能这样做,这是第一个要求。 –

+0

转出我可以使用投票,更新了问题。如果你能给出一个好的解决方案! –

没有轮询解决方案: 从我所收集,你需要一个远程过程调用机制。 我会去https://github.com/eriksank/rpc-websocket。 总体思路:

  1. 您的客户以自己的服务器进程注册为“消费者”。
  2. 当一个消息准备就绪后,你的服务器会通过每一个注册的“消费者”并发送消息,其中rpc-websocket可以处理。

投票解决方案:如果您已经注册,登录用户 这是一个总体思路,工作。

  1. 有一个存储消息的数据库表,我们称之为“消息”。
  2. 有一个记录消息和用户的数据库表,我们称之为“message_tracker”。如果用户看到消息,则此表中将有一行用于messageId和UserID。
  3. 让javascript脚本为新消息轮询服务器url。什么是新消息可以根据上面的数据库表来决定。
  4. 如果发现了新的消息,并处理,然后调用其插入到message_tracker数据库表
如何
+0

谢谢你!它会为我工作。 –