Android聊天服务器

时间:2012-10-01 05:30:04

标签: android

我需要为基于Android的客户端创建聊天/通信服务器。

Android聊天客户端将通过3G或wifi网络连接到互联网 我需要以下简单的功能

  • 注册新用户
  • 从一个客户端向另一个客户端发送消息
  • 一次将连接大约500个客户

来自桌面应用程序开发,我脑子里只有基于套接字的解决方案,服务器应该是基于java的应用程序

所以问题是:基于套接字的方法是否可行,或者我应该使用其他通信协议。

2 个答案:

答案 0 :(得分:6)

虽然使用TCP套接字可以完成这项工作,但这并不是一个好主意,因为您必须处理大量内容,例如消息格式化,流式传输等。使用已有的消息传递协议和库之一。 / p>

我建议调查XMPP,它有一套用于在设备之间实现消息传递的开放标准。一个优点是有大量库可用于实现XMPP客户端和服务器。

要在Android设备上实施XMPP客户端,您可以使用名为Smack的库。它实际上是一个基于Java的库。我使用Asmack实现了一个Facebook XMPP聊天客户端,这是Smack的Android端口。 Smack文档也适用于Asmack。然而,Asmack已经两年没有更新并且有一些问题,我一直在考虑将我的客户端更改为Smack,看看新版本是否与Android配合使用。

至于实现XMPP服务器,您可以查看由制作Smack的同一个人制作的Openfire。我还没有使用过,但是项目页面上有关于设置Openfire的大量文档。从我使用的Smack库的质量来看,我敢说Openfire可以很好地工作。

祝你好运!

答案 1 :(得分:0)

写入服务器的另一端并不重要,因为HTTP是高级协议。实际上你可能最终会使用套接字,除非你对GCM做了些什么。套接字是重量级电池,你可能只想偶尔保持套接字,以便以与应用程序使用成比例的某种速率检查聊天服务器上的更新。还请记住,您无法在主线程上保持网络连接,并且通常可以通过服务访问它。