xmpp-ejabberd中的实时数据流

xmpp-ejabberd中的实时数据流,xmpp,ejabberd,Xmpp,Ejabberd,我正在为实时图形数据的远程流配置ejabberd xmpp服务器。实现是成功的,但现在出现了许多性能问题 我的要求是每分钟通过ejabberd xmpp向移动网络发送大约3000条消息,并在桌面应用程序中接收,而不会有任何延迟 我已将ejabberd.yml配置文件中的流量整形器更改为非常大的值,并修改了许多其他流量限制,但在低带宽下测试时,桌面端会发生大量缓冲 那么,如果我确信我的配置是正确的,那么应该使用哪些扩展?在我研究期间,我发现以下XEP有帮助: 流压缩(XEP-138) 叮当声ICE

我正在为实时图形数据的远程流配置ejabberd xmpp服务器。实现是成功的,但现在出现了许多性能问题

我的要求是每分钟通过ejabberd xmpp向移动网络发送大约3000条消息,并在桌面应用程序中接收,而不会有任何延迟

我已将ejabberd.yml配置文件中的流量整形器更改为非常大的值,并修改了许多其他流量限制,但在低带宽下测试时,桌面端会发生大量缓冲

那么,如果我确信我的配置是正确的,那么应该使用哪些扩展?在我研究期间,我发现以下XEP有帮助:

    流压缩(XEP-138)
        叮当声ICE-UDP传输方法(XEP-176)
            同步HTTP(BOSH)上的双向流(XEP-124)
                XMPP-Over-BOSH(XEP-206)
                    流管理(XEP-198)
                      但所有的研究只是增加了怀疑的数量:

                        如果我要实现这些XEP中的任何一个,那么必须对配置进行哪些更改?
                        如何相应地修改XML节?XEP文档对于新手来说出人意料地不足。
                        流管理和流压缩之间有什么区别?
                        BOSH上的XMPP和同步HTTP上的双向流有什么区别?
                      如何实现BOSH?我现在正在使用端口号5222,如果我使用端口号5280,我的项目将发生什么变化?我应该在哪里反映这些变化?
                      如果我要合并任何两个扩展,它只会增加速度问题还是对我有利?

                    拜托,如果有人能帮忙的话?我确实意识到这个问题超出了可以发布在这个网站上的问题范围,也正如指导方针所规定的,“超出范围”和“偏离主题”。但任何帮助都将不胜感激。提前谢谢

                    从您的描述来看,带宽似乎是个问题。然后,流压缩应该是有用的。在这种情况下,其他XEP不会帮助您


                    使用流压缩的提示:在使用流压缩时,不要忘记,启用流压缩后,所有数据都会被压缩发送,并且在传递到XML解析器之前必须先解压缩。

                    根据您的描述,带宽似乎是个问题。然后,流压缩应该是有用的。在这种情况下,其他XEP不会帮助您


                    关于使用流压缩的提示:当使用流压缩时,不要忘记,启用流压缩后,所有数据都会被压缩发送,并且在传递到XML解析器之前,必须先解压缩这些数据。

                    问题在于协商顺序后跟Ejabberd。Ejabberd按照以下顺序进行流协商:

                    -TLS
                    -流压缩
                    -SASL
                    -资源绑定

                    而所有其他客户端和库都遵循流协商的建议顺序:

                    -TLS
                    -SASL
                    -流压缩
                    -资源绑定

                    这导致在SASL加密后,ejabberd服务器完全忽略
                    请求。由于XEP-170由XMPP文档关键字“推荐”和“非必需”标识,因此没有严格的强制执行

                    虽然受支持的协议规定遵循XEP-170,但我觉得“ejabberd 1.1.2:它只接受SASL(XEP-0138)之前的压缩”这一问题仍然没有得到解决
                    (使用OpenFire 3.10、XIFF AS3库和Seesmic XMPP AS3库测试了相同的场景,并且由于OpenFire允许在SASL加密之前或之后进行压缩,因此发生了压缩)

                    问题在于协商顺序后跟Ejabberd。Ejabberd按照以下顺序进行流协商:

                    -TLS
                    -流压缩
                    -SASL
                    -资源绑定

                    而所有其他客户端和库都遵循流协商的建议顺序:

                    -TLS
                    -SASL
                    -流压缩
                    -资源绑定

                    这会导致在SASL加密后,ejabberd服务器完全忽略
                    请求。由于XEP-170由XMPP文档关键字“推荐”和“非必需”标识,因此没有严格的强制执行

                    虽然受支持的协议规定遵循XEP-170,但我觉得“ejabberd 1.1.2:它只接受SASL(XEP-0138)之前的压缩”这一问题仍然没有得到解决
                    (在OpenFire 3.10、XIFF AS3库和Seesmic XMPP AS3库中测试了相同的场景,并且由于OpenFire允许在SASL加密之前或之后进行压缩,因此正在进行压缩)

                    谢谢!问题:我们正在从服务器zlib接收可用方法节,但当我们发送下一个请求zlib时,我们没有从服务器收到任何响应。文档中说,“如果发起实体不理解任何公布的压缩方法,它应该忽略压缩选项,并继续进行没有公布任何压缩方法。如何修复此问题?为什么服务器在我们已经收到以前的响应时不理解这些方法?请查看ejabberd日志和报告。通常,响应在日志文件中。抱歉,但日志没有对此做任何说明。我已在Ubuntu 14中使用安装程序安装了ejabberd.04.您尝试过使用源代码,但安装的版本2.1.11没有内置MUC功能。您能否就启用和实现流管理的所有操作提出建议。请注意:流管理=/=流压缩。我建议您尝试ejabberd 15.11。我们正在使用