我正在配置一个ejabberd xmpp服务器,用于实时图形数据的远程流传输。实施成功,但现在出现了许多性能问题。
我的要求是通过ejabberd-xmpp每分钟向移动网络发送大约3000条消息,并在桌面应用程序中接收它,而不会有任何相当大的延迟。
我已将ejabberd.yml配置文件中的traffic_shapers更改为非常大的值,并修改了许多其他流量限制,但在低带宽测试时,桌面端会发生大量缓冲。
所以,如果我肯定我的配置是正确的,那么应该使用哪些扩展?在我研究的时候,我发现以下XEP可以提供帮助:
但是所有的研究只增加了怀疑的数量:
如果有人可以提供帮助,请我确实意识到这个问题不在可以在本网站上公布的问题范围内,而且正如指南所指出的那样,“超出范围”和“非主题”。但任何帮助都将受到极大的赞赏。提前谢谢!
答案 0 :(得分:0)
问题在于Ejabberd遵循的谈判顺序。 Ejabberd按顺序进行流程协商:
的 -TLS
- 流程压缩
-SASL
- 资源绑定
而所有其他客户和图书馆都遵循推荐的流媒体谈判顺序XEP-170:
的 -TLS
-SASL
- 流程压缩
- 资源绑定
这导致在SASL加密之后ejabberd服务器完全忽略<compress>
请求。由于XEP-170由XMPP文档关键字RECOMMENDED而非REQUIRED标识,因此没有严格的执行
虽然支持的协议here指定遵循XEP-170,但我认为来自this link的问题表明&#34; ejabberd 1.1.2:它只接受SASL之前的压缩(XEP- 0138)&#34;仍然没有修复
(与OpenFire 3.10,XIFF AS3库和Seesmic-XMPP AS3库测试相同的情况,并且由于OpenFire允许在SASL加密之后或之后进行压缩,因此发生了压缩)