我将要开发一个具有近实时聊天功能的网站。我知道可以使用xmpp或websocket协议来实现。我也知道xmpp协议是在1999年开发的,我想它应该已经很成熟了。另一方面,websocket协议是在2011年开发的。
简短的答案是“两者”。
XMPP是用于进行实时聊天(以及许多其他事情)的一组应用程序协议-然后必须以某种方式在网络上进行传输,因此您需要进行传输绑定。XMPP有三种主要的传输绑定-
因此,如果要在浏览器中开发聊天应用程序,则应选择XMPP作为应用程序协议,并使用websocket(在现代浏览器中)或BOSH(在较旧的浏览器中)作为网络传输。如果您使用Stanza.io(https://github.com/otalk/stanza.io)这样的Java脚本XMPP库,它将同时支持这两者,而您只是在考虑“
XMPP”,而不是传输层,除了在安装时,您必须告诉它要连接到哪个端点。
(您不能使用“仅websockets”进行聊天-您可以在不使用XMPP的情况下使用websockets,但这实际上意味着您正在发明自己的应用程序层协议进行聊天,而且很可能节省了通过利用已经编写好的具有有用属性(安全性,身份,可扩展性等)的工作而花费很多时间和头痛,而通过使用XMPP来为已有的库和服务器编写工作。
xmpp-over-websocket 的目标是提供一个实时信息基于 xmpp 和 websocket pull 或者 poll 的解决方案。 Getting Started Clone git 库的子模块,运行通讯脚本,然后每个子模块会生成一个发布包。 步骤:1) 部署发布包; 2) 开始 ws-xmpp-master; 2) 打开 Openfire 服务器;3) 打开 ws-xmpp-robo
go-xmpp 是另外一个 XMPP 协议的 GO 语言实现。
MatriX 是 eXtensible Messaging and Presence Protocol (XMPP, 也叫 Jabber) 的开发包,采用 C# 编写,可用于 .NET 平台和 Sliverlight 技术。MatriX 提供完全的 .NET、.NET Compact 框架和 Sliverlight 支持。 示例代码: // basic send message examplev
cl-xmpp 是 Common Lisp 实现的一个 XMPP 协议支持的开发包。
xmpp-go 是 Go 语言实现的兼容 XMPP 协议的客户端和服务器端。
问题内容: 总览 我正在客户端(Android手机)和服务器(Windows Server)之间来回发送消息。使用基于TCP的持久连接,哪种协议将是最佳解决方案。我正在研究性能,可伸缩性,消息大小和电池寿命。消息必须按顺序到达目的地,并且不能重复。 MQTT 这似乎是更好的解决方案,但似乎很少有大量用户使用大型实现的示例。我不确定是否可以将其集成到Windows服务器中,或者是否必须运行其他应用程