2013-02-08 25 views
0

我想管理2个应用程序之间的连接,它们将在不同的电话上运行。 目的并不重要,假设它会是某种聊天。2个应用程序之间的连接

如何在应用程序之间创建此连接?我知道如何在使用套接字和serverSocket类的pc java程序上做到这一点,但我猜这是不同的,因为当他在网络之间移动时,手机可能会改变他的ip。

那么你会怎么做呢?你将如何建立两个应用程序/电话之间的连接

+1

A <->服务器,服务器<-> B,我不认为你需要保持连接,一个数据传输,一个连接就足够了。此外,Android有很多情况可能会破坏您的申请流程。 – StarPinkER

回答

0

鉴于您在评论中描述的情况,使用推送通知即Google Cloud Messaging (GCM)可能就足够了。

因此,当program B想要从program A更新时,它会要求服务器将通知(通过GCM)推送到program A。请注意,program A而不是每x次连接到服务器以检查更新。

另一个开箱即用解决方案是使用短信,如果通信不是如此频繁和消息很短。这里我的意思是短信将直接由您的应用程序处理(因为它有一定的关注词),并不会去收件箱即没有短信通知在手机上

0

由于两个电话将,如你所说,有变化的IP地址,你可能需要使用中介。

这里的一般设计模式是让服务器拥有固定的IP或DNS地址,以便在两个移动设备之间传递消息。最简单的实现将是一个网络服务器,每个电话将通过HTTP(S)连接以传输数据或轮询更新。

有许多后端即服务平台提供了预建的这种类型的功能,并且可能足以用于诸如聊天系统之类的东西。检出CloudmineParse

如果您需要低延迟或接近实时的连接,还可以考虑实施您自己的服务器,该服务器使用Android C2DM(云到设备消息传递)服务。

+0

听起来不错,但有一件事我想强调,聊天的例子是一个不好的例子,因为在我的情况下,手机A将只发送给手机B的信息,只有当手机B告诉他!所以假设我实施它购买你的建议,然后电话B会告诉服务器电话A需要发送一些东西,而服务器不能连接电话A,所以电话A必须每x次连接一次服务器以检查更新效率低下。 –

0

请参阅Android的示例蓝牙聊天应用程序,它会给你一个想法如何实现。

相关问题