【问题标题】:Why no UDP connection via browser even with HTML5?为什么即使使用 HTML5 也没有通过浏览器的 UDP 连接?
【发布时间】:2013-07-15 15:48:26
【问题描述】:

为什么我们不能在浏览器和服务器之间建立 UDP 连接?为什么 TCP 连接可以(通过 WebSockets)而 UDP 不可以?

【问题讨论】:

  • 因为 websockets 是建立在 TCP 之上的。
  • chrome 打包应用可以访问 UDP io 的 API。
  • 你能解释更多,我可以用谷歌搜索吗?那个 API 是什么?你说的是 webRTC 吗?

标签: javascript html browser udp websocket


【解决方案1】:

HTML5 不允许任意 TCP 连接。

相反,Web 套接字是一种基于 TCP 的特殊新协议,它允许双向通信。

同样,WebRTC 是一种基于 UDP 的特殊新协议,允许点对点通信。

允许任意套接字连接将是一个主要安全漏洞。

【讨论】:

  • 没错,但是websocket也是TCP的,没有UDP
  • @Cgraphics:允许 UDP Web 套接字是没有意义的。 Web 套接字依赖于 TCP 的属性,例如排序和保证交付。
  • 注意:WebRTC 仅在 Firefox 的 UDP 之上实现。
【解决方案2】:

您可以使用最新版本的 Chrome 和 Firefox 中提供的 WebRTC 访问 UDP。这使您可以直接进行浏览器 - 浏览器连接,而无需通过服务器等。

【讨论】:

  • 很好,我们也可以在浏览器和服务器之间建立 UDP 连接吗?我猜对了?
  • 其实RTC还是需要一个服务器来握手,从显示的文字中看不清楚...
  • 我相信这是可能的,是的。您将需要有 WebRTC 协议的服务器端实现。我听说过这样的事情正在谈论,但我不知道任何实际的实现。
  • 是的,webRTC 使用 ICE en.wikipedia.org/wiki/Interactive_Connectivity_Establishment 协商连接,可以在服务器端实现。使用 libjingle developers.google.com/talk/libjingle - 您应该能够创建客户端/服务器 udp 连接,尽管这可能非常具有挑战性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2013-12-13
  • 2011-06-23
  • 2017-03-30
  • 2021-06-07
相关资源
最近更新 更多