默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教Nodejs实现XMPP和MQTT协议的具体思路?
阅读(42673) | 评论(2 收藏1 淘帖
我最近在用Node.js开发后端,能用它的内置模块启动http服务器,tcp服务器,udp服务器,也能实现socket连接以及发送数据,但始终没有看到XMPP之类的协议细节,是被http服务器封装了还是根本没有实现这个协议,如果Node.js没有实现XMPP协议,该如何大致去实现这个协议,如果被封装了又如何修改为MQTT协议?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:XMPP MQTT IM开发
上一篇:求教关于IM消息送达可靠性(QoS应答机制)的实现方案下一篇:openfire+smack 实现IM群聊时候,能否实现群成员主动退出群功能
推荐方案
评论 2
你对协议的理解可能有些出入,我帮你解答一下。

XMPP协议跟HTTP协议一样,是一种应用层标准协议(实际上它跟HTTP没有关系的),协议本身只是一组规范,具体的代码实现就依赖到具体的实现方案(就像HTTP协议必须要浏览器和你的Web服务器去用代码实现了后,你才能使用对应的能力或功能是一个道理)。比如大家用XMPP开发IM时,很多人都会用Openfire作为服务端(http://www.52im.net/article-177-1.html)、Spark作为客户端(http://www.52im.net/article-132-1.html),Openfire就是一种实现了XMPP协议的服务端、Spark是一种实现了XMPP协议的客户端,有了客户端和服务端才能实现类似于HTTP协议的客户端和服务器的通信。

上面关于XMPP的解释不知你有没有理解。

MQTT也是同样的道理,协议只是一种理论概念,具体的实现得看你用到什么方案(比如是一组开源库、或者是一整个的开源服务端和客户端方案等)。

至于Nodejs里有没有包含xmpp或者mqtt啥的,这肯定是不会包含的,即使支持也是以库的形式作为扩展通过npm下载的。
XMPP的官方网站是也给了一些比较优质的XMPP协议实现(比如lib库和完整的服务端、客户端),你找找有没有你想要的:http://xmpp.org/software,Openfire、Smack、Spark的官网在这:http://www.igniterealtime.org/。这都是XMPP比较优质资源,可以参考。

至于MQTT,因为很难找到靠谱的服务端,多数情况下还是得靠自已要么基于某个开源去改、要么用IBM的Websphere官方商业方案。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部