【问题标题】:Android chat server [closed]Android聊天服务器[关闭]
【发布时间】:2012-10-01 05:30:04
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: android


    【解决方案1】:

    虽然使用 TCP 套接字可以完成这项工作,但这不是一个好主意,因为您必须处理很多事情,例如消息格式化、流式传输等。使用现有的消息传递协议和库之一。

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

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

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

    祝你好运!

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多