node.js, XMPP Strophe.js

Posted

技术标签:

【中文标题】node.js, XMPP Strophe.js【英文标题】: 【发布时间】:2012-03-16 04:17:41 【问题描述】:

我目前正在考虑向我的站点添加一个实时通知系统,到目前为止,我的选择是使用 node.js 或带有 js XMPP 库(如 strophe.js)的 XMPP 服务器。 现在我只需要它来实现我网站上的实时通知系统,但它可能会演变为更复杂的功能,例如聊天系统。

所以我有以下问题:

    这两种技术有何不同?

    这两种技术中的哪一种“更适合”集成到在 LAMP 环境中运行的站点中。

谢谢,

【问题讨论】:

【参考方案1】:

如果您想使用 xmpp,那么您有 3 种服务器技术可供选择:

Jabber2 (C++) eJabberd (Erlang) Openfire (Java) 韵律 IM (Lua)

因此,如果您想开发一些独特的服务器端功能,您应该具备 C++、erlang、java 或 lua 方面的技能。我使用 openfire 是因为我熟悉 java。 Openfire 还提供了很好的插件系统。但是,如果您只想在您的网站上进行一些聊天,那么您可以在您的服务器计算机上设置这些 XMPP 服务器之一,之后您唯一需要做的就是使用 strophe.js 编写一些浏览器端功能(即很简单)。

如果您不想使用 c++、ejabberd、java、lua,并且您仍然需要一些服务器端功能,请使用 node.js。

xmpp 和 node.js 聊天应用程序都可以很容易地与 LAMP 网站集成(您只需要修改您的网站 javascript,不需要 php 代码),但如果您更喜欢 LAMP 技术,我敢打赌 node.js 是正确的给你。

【讨论】:

prosody (prosody.im) 是第四个选项,效果很好,并且可能是四个选项中最容易设置的一个 @MattZukowski:谢谢,添加到答案中【参考方案2】:

XMPP 是一种协议。最常见的服务器实现是 ejabberd (Erlang) 和 Openfire (Java)。 Web 客户端通过 BOSH(长轮询)连接。

Node.js 只是一个执行 javascript 的环境。像 socket.io 这样的东西,实际上更像是一个传输抽象层。由您来设计和实施您的通信协议。

【讨论】:

以上是关于node.js, XMPP Strophe.js的主要内容,如果未能解决你的问题,请参考以下文章

为啥选择 XMPP 而 Node.js 和 WebSocket 都可用? [关闭]

node.js, XMPP Strophe.js

XMPP BOSH 预绑定返回 SID 和 RID 的 Node.js 解决方案

套接字、xmpp 和对 node.js 的轮询 - 高性能和服务器友好

Node.js xmpp 客户端收到“BAD_REGISTRATION”错误作为消息响应

Node.js 并与像 Pidgin 这样的原生聊天交互?