基于二进制的xmpp服务器?

时间:2013-03-01 16:57:02

标签: xmpp

Helo,我正在开发一款需要从客户端到服务器的实时通信的手机游戏。

通常我会实现TCP套接字服务器并使用一些私有二进制协议来启用双向通信,现在我也在研究像Ejabberd这样基于标准的XMPP服务器。但XML在某种程度上确实是冗余和低效的,特别是对于移动应用而言,它可能意味着更多的流量和内存消耗。

  1. XMPP必须使用XML吗?
  2. 是否有任何XMPP实现使用二进制作为低级数据格式而不是使用XML? (或者我不应该选择XMPP并从其他标准或技术开始。)
  3. 使用XMPP减少发送复杂数据对象(不是大文件对象)的开销的任何策略?

1 个答案:

答案 0 :(得分:2)

XMPP规范要求XML,因此没有二进制实现。它确实包含更多的开销,但你必须记住XMPP旨在解决的问题 - 活跃的聊天连接可能每秒传输一条消息。

至于Google talk api:他们使用非xml协议进行客户端 - Google服务器连接。当我在Gmail客户端发送邮件时,请求正文只包含一堆帖子数据:

count=1&ofs=16&req0_type=m&req0_to=my.friend%40gmail.com&req0_id=6A8466CBC59CBB0C_0&req0_text=test&req0_chatstate=active&req0_iconset=classic&req0__sc=c

那部分不是XMPP。接受此请求的服务器然后执行创建和发送XMPP请求的工作。 XMPP仍然是XML格式,它们只是在客户端和Google服务器之间使用不同的协议。