基于 Tornado 的 XMPP 服务器和客户端

Posted

技术标签:

【中文标题】基于 Tornado 的 XMPP 服务器和客户端【英文标题】:Tornado based XMPP server and client 【发布时间】:2012-04-08 21:03:37 【问题描述】:

我们正在开发一个基于聊天的网站。在进行了广泛的文献回顾后,我们决定使用 Tornado 作为我们的 Web 服务器,使用 socket.io 作为客户端 javascript

我们现在正在扩展我们的应用程序,以一次为大约 50,000 名用户提供服务。所以,我想问一下 Ejabberd 是否适合我们的架构(同意我们对改变持开放态度的事实,这会极大地改变我们当前的实现,只要它是值得的)或者是否有任何其他技术堆栈可以扩展一样。

我们的重点是一对一的用户聊天。

【问题讨论】:

【参考方案1】:

简而言之,它可以,但有一个小缺点:

XMPP 与 Web 客户端通信的标准方式是BOSH。 BOSH 是一种通过 HTTP 工作的长轮询解决方案。 Websockets 还不是图片的一部分,虽然有一个draft proposal。

也就是说,最常用于 Web 客户端的 javascript 库是 Strophe。 ejabberd 和 strophe 都有一个(实验性的?)插件,通过 websocket 进行通信。该插件描述为here。

【讨论】:

以上是关于基于 Tornado 的 XMPP 服务器和客户端的主要内容,如果未能解决你的问题,请参考以下文章

XMPP详解

XMPP 服务器和自定义 API

基于Tornado自定制仿Django的Session以及Form组件

基于Tornado签名cookie源码设计API认证

XMPP Java 客户端 - 未连接到服务器

[iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端一)