Java 哪种客户机-服务器通信方法?

Java 哪种客户机-服务器通信方法?,java,client-server,communication,distributed,Java,Client Server,Communication,Distributed,基本上,我需要一个双向的客户机-服务器通信(Java),其中客户机调用服务器上的方法,但如果服务器中发生某些事件,还需要获取“回调”。 这些方法本身具有相当复杂的输入和输出参数,因此最好包括对系统的身份验证。 哪种方法适合我的要求? 我已经用RMI构建了一个原型,但是我了解到存在许多问题,特别是当c/s在不同的网络中时,“回调”问题。 此外,我希望避免使用JAX相关技术,因为我在参数中使用了复杂的数据结构。我很幸运地使用了Web应用程序的回调。您考虑过使用JMS吗。在这个体系结构中,服务器和客户

基本上,我需要一个双向的客户机-服务器通信(Java),其中客户机调用服务器上的方法,但如果服务器中发生某些事件,还需要获取“回调”。 这些方法本身具有相当复杂的输入和输出参数,因此最好包括对系统的身份验证。 哪种方法适合我的要求? 我已经用RMI构建了一个原型,但是我了解到存在许多问题,特别是当c/s在不同的网络中时,“回调”问题。
此外,我希望避免使用JAX相关技术,因为我在参数中使用了复杂的数据结构。

我很幸运地使用了Web应用程序的回调。

您考虑过使用JMS吗。在这个体系结构中,服务器和客户端将注册到队列或主题,并能够相互发送消息。这将启用sych和异步应用程序行为

请在此处深入了解JMS:

ActiveMQ是一个非常好的实现: