Java Play 框架中的观察者模式

Observer pattern in Java Play framework

我正在用 Java Play 编写一个网络应用程序,我的想法是让一个 websocket 连接到服务器,在 JSON 中发送一堆 "live"-data并让另一个 websocket 连接到服务器并收集数据。我在这里尝试实现观察者模式,因此服务器将在数据更新时发送数据。我似乎无法让它工作。

所以我想我在问 如何在 Java Play 应用程序中实现观察者模式。

我已经尝试将这段代码放在 onStart 方法中,但我一直收到 InstantiationException,我猜这是因为对象是在 WebSocket 连接时实例化的。

WSocket socket = new WSocket(); //Observable
Listener listener = new Listener(socket); //Observer

如有任何提示,我们将不胜感激!

如果我错了请纠正我,但我认为你过度设计了。如果我理解正确,您希望将从一个 WebSocket 连接发送的数据填充到其他活动的 WebSocket 连接。


如果您在 Play 中使用回调,当 WebSocket 准备就绪时,您将同时获得 inout 频道。

你可以做的是收集一些 List 中的所有 out 个频道,每当你收到一些消息时,你只需将此消息广播到你收集的所有 out 个频道.

如果您有时间考虑用 Akka actors 重写 WebSocket 连接的处理方式——它更容易、更稳定(也很有趣;)