JAVA从服务器推送到客户端

ban*_*lit 4 java client-server push duplex

我想让客户端通过服务器相互查询而没有延迟(=没有轮询间隔).

示例:服务器S,客户端A和B.

客户端A想要请求客户端B.客户端A将向服务器S发出请求,没有问题.然后,服务器S需要能够请求客户端B,但如何在没有轮询的情况下执行此操作?

所有node.js/APE(用于PHP)技术都是为Web设计的,但我没有使用Web服务器.Java是否有接近推送技术/框架的东西,而不是网络?

我真的更喜欢不需要每个客户端使用自己的保留端口的解决方案(例如,我不希望每个客户端最终使用1个WebService)

注意:所有客户端都在同一台计算机上.

小智 5

几个选项......

  • 普通插座通信.java.net.Socket,java.net.ServerSocket.最大的灵活性,但需要了解低级TCP/IP API /概念.

  • 好老的RMI.基于Java的RPC层位于TCP/IP之上.当客户端和服务器都在Java中并且通常在同一子网中时,工作正常.当客户端和/或服务器出现问题时可能会出现问题.

  • Spring Remoting,它实际上相当不错.

  • 双向Web服务.即客户端托管自己的WSes,服务器在需要进行回调时调用这些WSes.

  • JMS就像有人提到的那样.

  • 分布式数据结构,请查看http://www.hazelcast.com/

有很多选择可供选择,不需要网络服务器.