【问题标题】:What is the difference between ServerSockets and Websockets?ServerSockets 和 Websockets 有什么区别?
【发布时间】:2014-09-11 02:56:27
【问题描述】:

似乎有两种方法可以在 Dart 服务器和 Dart 客户端之间保持开放连接:ServerSocket 和 Websocket。

https://www.dartlang.org/dart-by-example/#sockets
https://www.dartlang.org/dart-by-example/#websockets

什么时候最好用一种代替另一种?

【问题讨论】:

标签: dart


【解决方案1】:

Websocket 是基于TCP 协议(ServerSocketSocket)的顶级普通套接字构建的协议。 Websockets 让您在编程过程中更加舒适,因为它可以帮助您:

  • 框架:TCP 是基于流的,Websockets 允许您发送包。您不必自己找到包裹的开头和结尾。
  • 关闭握手:您可以发送连接关闭原因。
  • 安全性(在浏览器上下文中,在控制台应用程序上下文中不需要)
  • 您还可以通过 Webbrowser API 访问您的 Websocket 服务器。

如果您想与使用 TCP 的现有服务器/客户端一起工作,则必须使用 ServerSockets。 Websockets 和 ServerSockets 不兼容(出于安全原因故意)。 由于 Websocket 有更多内部工作要做,因此性能和吞吐量不会像原始 TCP 一样好,但这点可以忽略不计。

这两种协议都可以用于加密、使用 HTTPS 连接 (wss://) 的 Websockets 和使用 TLS 的 TCP(SecureSocketSecureServerSocket)。

有关 Websockets 的更多详细信息,请查看RFCRawDatagramSocket 允许您使用 UDP 协议以及基于 TCP 的 ServerSockets。

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 2011-02-10
    • 2012-09-01
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    相关资源
    最近更新 更多