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 都可用? [关闭]
XMPP BOSH 预绑定返回 SID 和 RID 的 Node.js 解决方案
套接字、xmpp 和对 node.js 的轮询 - 高性能和服务器友好