Android Omegle-like应用程序-我怎么做?

Android Omegle-like应用程序-我怎么做?,android,Android,我正在尝试做一个类似omegle的应用程序,它基本上是以某种方式连接两个设备,以便它们可以相互通信 我运行了一些解决方案,例如Socket解决方案(客户机-服务器),我甚至实现了它,只是为了发现如果设备不共享同一个网络,它就不起作用(糟糕的是,我对这些问题不太了解) 我考虑实现它的另一种方式是两个设备通过API不断检查数据库(服务器上)上“对话”表中的一行,以查看是否有新消息。因此,当有人发送消息时,它会更新对话行。但是这个解决方案似乎有点复杂,因为这似乎是一个简单的问题,而且每次都有一个异步任

我正在尝试做一个类似omegle的应用程序,它基本上是以某种方式连接两个设备,以便它们可以相互通信

我运行了一些解决方案,例如Socket解决方案(客户机-服务器),我甚至实现了它,只是为了发现如果设备不共享同一个网络,它就不起作用(糟糕的是,我对这些问题不太了解)

我考虑实现它的另一种方式是两个设备通过API不断检查数据库(服务器上)上“对话”表中的一行,以查看是否有新消息。因此,当有人发送消息时,它会更新对话行。但是这个解决方案似乎有点复杂,因为这似乎是一个简单的问题,而且每次都有一个异步任务检查数据库中的更改似乎有点重

所以我想问你们,是否有一个“标准的方法”来做到这一点,或是一个更简单的方法来做到这一点


提前感谢

我能想到的第一件事(不确定这是否是最好和正确的方法)是使用
套接字创建
客户机-服务器
通信。使用这种类型的通信,服务器将存储来自(我们称之为)第一个用户的消息。之后,服务器通过
推送通知
发送通知给
第二个用户
,应用程序读取通知并通知用户。因此,您可以使用以下基本系统:

FirstUser  ---- (send message) ---> WebServer
WebServer   ---- (push notification)  ---> SecondUser

SecondUser ---- (send message) ---> WebServer
WebServer ---- (push notification) ----> FirstUser
所以在这种情况下,工作由服务器端完成,应用程序将只从后端发送和接收数据。我认为这是最好的办法,如果我错了,请纠正我


希望这有帮助

谢谢你的回答,伙计。我对插座了解不多。正如我所说,我实现了第一个解决方案,其中一个设备打开一个serverSocket,另一个连接到它。但是,当设备在不同的网络(如家庭wi-fi和3g)中运行时,它不起作用。那么你的这个解决方案就不会有同样的问题了?再次感谢服务器和客户端之间的连接不依赖于同一网络,因此无论设备有多远以及它们使用何种连接,它都可以工作。你正在连接你的服务器,实际上他正在做繁重的工作,而不是应用程序。嗯,我明白了。再研究一点我发现你是对的。将此系统与GCM结合使用是“正确”的方法。谢谢你的回答!