为特定客户端播放框架和服务器端事件或Websocket

时间:2017-07-18 08:03:53

标签: java playframework websocket akka akka-stream

我正在使用Play Framework 2.6 with Java来实现REST API的服务器。一些REST调用包括将图像上载到服务器。服务器必须处理图像,并在完成后通知客户端。某些图像可能会被分析10分钟或更长时间,因此客户端REST调用不能等待答案。我正在考虑通过服务器端事件(SSE)或WebSockets(WS)通知客户端图像已准备就绪,我更喜欢SSE。

我知道https://github.com/playframework/play-java-streaming-example上的Play Framework示例,但它太简单了,因为它只是每100毫秒向客户端发送一个事件。

我也知道https://github.com/playframework/play-java-chatroom-example上的示例,它演示了一个只在客户端发送消息时才发送事件的聊天室。但是(对我来说)有太多的“黑魔法”,因为只有一堆线连接所有客户端。这里的问题是,它正在广播消息,没有控制哪个客户端接收哪个消息。

我真正想要的是: 跟踪我的客户端(例如在HashMap中),以便我可以通过会话ID找到它们,如果有特定客户端的消息,我从我的Map中选择此客户端,发送服务器端事件以通知它图像已处理。然后,客户端可以进行另一个REST调用以获得结果。

是否有任何示例或源代码片段可以实现这一目标?

期待任何帮助!

谢谢你, schube

0 个答案:

没有答案