我发现有一个名为GCT - Group Communication Toolkit的.NET工具包,它是JGroup的C#版本。我想知道是否可以将其与JGroup连接起来,使Java和C#客户端相互通信。
如果不行,那么最好的选择是什么,以便让Java程序和C#程序进行通信?
我还发现另一个选择是XMPP实现。
我需要这两个在同一台计算机上运行的程序之间非常快速地传递消息。主要要求是当某些特定事件被触发时,其中任何一个程序都可以向另一个程序发送消息。
欢迎任何想法。
XMPP并不是你想要的东西。它的设计是用于在中心服务器上传递计算机之间的消息。
我建议使用套接字来在应用程序之间传递数据。在C#中,请参阅System.Net.Sockets.Socket类;在Java中,请参阅java.net.Socket类。
我工作的地方使用ICE (http://www.zeroc.com/)。它让我们能够在Java和C#之间传递二进制数据。整体来说还不错。
谷歌的Protocol Buffers可能是一个选择。它非常便携且速度相当快。
回应楼主的“回答”……
将“服务器推送”映射到经典的RPC模型(例如CORBA,SOAP,ICE,RMI等)的方法是翻转角色,以便您认为是服务器的事物填充RPC中的客户端角色。 模式如下:
客户端调用服务器,传递一个回调对象的句柄。
服务器记住回调对象并返回。
客户端睡眠(或做其他事情……)
稍后,服务器想要推送一些数据。
服务器在回调对象上调用“推送”RPC,传递数据。
客户端接收回调对象上的调用/请求,对数据进行处理并进行回复。