我们有一个服务器应用程序和两个独立的客户端应用程序(两者都具有不同的功能 - 一个用于前台,另一个用于后台)。一切都是用Java编写的。
我们现在需要的是: 如果两个应用都在运行 - 点击一个应用中的按钮 - >检查其他应用程序是否已打开并触发该应用程序上的某些功能(显示消息,打开框架)
如果其他应用未打开 - >它应该显示一条消息说明。
任何人都可以指出我正确的方向来实现这一目标。我能给出的最好的现实生活示例是:如果安装了iTunes应用程序,那么点击网页浏览器中的itunes链接会打开相应的appstore页面。
编辑:我们的应用程序根本不涉及网站。一切都使用Swing。
答案 0 :(得分:5)
没有“最好”的方式来实现应用内通信,但有很多方法;最好的一个将是最适合您的环境:网络条件,防火墙,呼叫数量,同步与异步等...
通常使用以下任一方式实现沟通:
在Java世界中,
RPC通常使用
实现可以使用
实现消息传递混合方法是REST,由于易于实现和网络友好的优点而变得非常流行,但具有不正式化的缺点。它是一种技术而不是规范。我会查看围绕JAX-RS的文档以及Restlet和Jersey等框架,以帮助您入门。
(编辑) 我故意没有提到使用Java套接字开发自己的套接字。根据定义,IO是不纯的,而且经常是多线程的:IO 非常难以正确使用。如果你真的坚持沿着这条路走下去,至少应该使用像Apache Mina或Netty这样的合适框架的帮助。