我们需要“推送通知”机制,以java编写的桌面客户端,以及android,ios和windowsphone8等移动客户端。我遇到了非常适合的“服务器端事件”,因为我们只需要从服务器到客户端的单向通信,因此对于这种情况,websockets是过度的。我们目前正在使用轮询作为后备,但我们希望尽可能避免这种情况。
据我所知,服务器需要某种“发布订阅”模块,但我不确定“spring framework”是否提供任何帮助,或者是否有其他框架帮助管道传输。我读过关于redis是发布订阅模块的一个很好的候选者。 然而,用于将Java桌面客户端连接到此发布订阅模块的框架/组件是我想要帮助的。
有很多技术/框架有html 5 websockets,socket.io等等但这些只适用于web,即浏览器客户端..我正在查看java.net.ServerSockets(以前没用过) )但稍微不确定这是否是最好的方法。我们将在与Java桌面客户端相同的桌面上运行一个单独的“服务模块”,该服务将处理推送通知。
答案 0 :(得分:1)
听起来您可以使用Java Messaging Service(JMS)
Spring对JMS的支持
http://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/jms.html
J2EE JMS
http://docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/overview.html#1027335
另外,请查看这些类似的问题 -
how to notify java desktop clients about changes from server?