值得自定义一个XMPP服务器吗? (与拥有客户工作者相比)
我被问及为内部应用程序编写ejabber模块的可能性。 我反对这个想法,但我对xmpp不太了解,以支持我的回应,也许我错了。
当谷歌做了浪潮时,他们选择了xmpp; 我明白那个选择; 多人之间的实时通信。 这里同样的目标。
...但我觉得像定制服务器插件并不是正确的答案。
我看到的问题是:
1)您与服务器开发失去同步,必须通过合并地狱来确保服务器上的安全更新,修补程序等被修补。
2)任何服务器的重定制意味着你可能希望传递特殊标记消息来与服务器插件交互; 这意味着你也必须做大量的客户端定制。
有一条替代路线:
标准XMPP服务器。 两个定制的xmpp客户端; 一个用于客户端,另一个用于服务器。
服务器客户端打开到XMPP服务器的连接并坐下并等待。
多个前端客户端打开到XMPP服务器的连接,然后使用xmpp打开连接(可选):1)彼此连接,2)连接到服务器客户端用户。
然后,前端可以通过与服务器客户端交谈来执行实时更新。 它甚至可以订阅多个服务器客户端用户,并为多个不同的并发任务传入“活动流”。
这具有以下优点:
1)您只需解决一次XMPP问题(客户端库)
2)您的应用程序服务器永远不会在外部可见; 只有XMPP服务器在外部可见,这是巨大的安全胜利。
3)您可以使用任何XMPP服务器基础架构,而不会出现任何问题。
4)您将永远不会有导致您的应用程序服务器成为“传统”且无法再使用这些apis的服务器更新(缺少完整的XMPP协议更新)。
下行:
您的应用程序服务器客户端需要足够复杂以处理多个请求,或者有多个工作人员或其他东西(但这可以使用资源字段进行扩展,并且具有来自连接到XMPP网络的不同计算机的多个应用程序服务器)。
......但是,我对这项技术并不熟悉。
是否有任何理由为什么我建议的替代方案会比定制的xmpp服务器更差?
XMPP仅用于联盟中的Google Wave / Wave中的Box,即仅用于服务器到服务器的通信。 这是为了利用现有的XMPP功能,如发现协议。 消息在XMPP数据包内的服务器之间以二进制形式传输。 Web客户端使用WebSockets / Socket.IO与服务器进行通信。 实际上,这就是为什么要开发另一种纯粹的基于HTTP的联合协议的原因。
链接地址: http://www.djcxy.com/p/61289.html上一篇: Is it worth customizing an XMPP server? (vs. having client workers)