使用XMPP或WebSocket,为什么用户之间需要实时通信服务器?

tom*_*tom 4 chat xmpp real-time websocket

在底部,它是关于套接字通信的.如果有一些方法来获取两个用户的IP,为什么不能在用户之间直接建立连接而不必通过中间的服务器?

Abh*_*ngh 22

我的2美分:

没有人强迫我们拥有基于服务器的实时通信模型.事实上,XMPP有一个名为"无服务器消息传递"的扩展,它定义了如何使用端点发现的零配置网络原理以及用于实时通信的XML流和XMPP消息传递的语法,在本地或广域网上进行通信.此方法使用基于DNS的服务发现和多播DNS来发现支持该协议的实体,包括其IP地址和首选端口.

P2P聊天应用已经有十多年了.将服务器放在中间纯粹是一个决定,取决于您的应用程序需求.如果您的应用程序可以在用户在线/离线状态之间转换时丢失聊天记录,那么您可以很好地拥有直接的P2P模型.同样,在选择基于服务器的消息传递模型时,有一些优势(联系人列表管理,头像,实体发现,在线状态授权,离线消息......).如果你试图让你的基于P2P的客户端内的所有这种权利,他们可能会死,或因为他们将需要自己来完成所有的工作下进行.

"WebSockets"不是为P2P /无服务器通信而设计的,而是旨在通过无状态HTTP协议提供标准化的PUSH语义.简而言之,"WebSockets"是一种标准化的方式,可替代hacky comet,long-polling,chunked-encoding,jsonp,iframe以及各种其他技术开发人员用来模拟服务器推送HTTP.

  • 很好的答案.我将补充说,将XMPP与websocket进行比较就像将汽车与道路相比较.一旦WebSocket规范固化 (2认同)