什么项目将使用 websocket 而不是 webrtc?
Posted
技术标签:
【中文标题】什么项目将使用 websocket 而不是 webrtc?【英文标题】:what project will use websocket instead of webrtc? 【发布时间】:2014-07-29 09:42:48 【问题描述】:我的知识很少。
websocket:服务器控制客户端和服务器之间的连接、消息流。
webrtc:服务器控制客户端和客户端之间的连接、消息流。
我理解对了吗?
例如,我想在一群人之间构建一个文本聊天应用程序。 如果我需要记录(捕获)客户端之间的消息,保存到服务器,我必须使用 websocket 怎么办?
【问题讨论】:
对于这个特定的实现,您说您希望将聊天存储在服务器上,我会说 websockets 是要走的路。如果跳过服务器的集中日志记录,webRTC 是一个不错的选择(如果只看技术,浏览器对 websockets 的支持比 WebRTC 更普遍) 【参考方案1】:嗯……不。
使用 WebRTC,可以在对等点之间建立通信,仅使用服务器在开始之前发送对等点信息的信号。例如,只要可以进行对等通信,就可以进行直接视频和音频通信。
在您的聊天示例中,您将使用 websocket 与管理聊天室的服务器建立持久的全双工连接,并将消息广播给所有其他房间参与者。此外,您可以提供“直接聊天”选项,用户可以直接交换消息,甚至使用 WebRTC 进行语音/视频聊天。
同样,对等通信取决于它们之间的网络状况,例如,如果其中一个使用 NAT 穿越,则信令服务器无法确定如何连接它们,因此中继服务器应该是使用(因此,它不会是对等通信)。
大致上,WebRTC 通过 UDP 实现对等通信,websocket 使用 TCP。 WebRTC 尝试启用对等点之间的通信 (STUN),但如果无法进行此类通信,则可能会回退到中继服务器方法 (TURN)。
【讨论】:
以上是关于什么项目将使用 websocket 而不是 webrtc?的主要内容,如果未能解决你的问题,请参考以下文章
Web Socket 与 JMS 或 Activemq [关闭]
为啥 Blazor 使用 post 而不是 WebSockets?