【发布时间】:2020-01-26 10:50:53
【问题描述】:
我正在寻找 DartPad 上的示例 WebSocket 实现。
这是实现的链接:WebSocket Sample
然而,当我尝试在我的本地机器上实现相同的功能时,我发现 Dart 有两个 WebSocket 类的实现。
dart:io 包中提供了一个,dart:html 包中提供了另一个。
谁能提供两者之间的区别以及两者相比的优势是什么?
【问题讨论】:
我正在寻找 DartPad 上的示例 WebSocket 实现。
这是实现的链接:WebSocket Sample
然而,当我尝试在我的本地机器上实现相同的功能时,我发现 Dart 有两个 WebSocket 类的实现。
dart:io 包中提供了一个,dart:html 包中提供了另一个。
谁能提供两者之间的区别以及两者相比的优势是什么?
【问题讨论】:
dart:io 中的一个用于运行在包括 Flutter 在内的 Dart VM 上的独立应用程序,而 dart:html 中的一个用于 Web 浏览器。
【讨论】:
除了两个库中的一些实现更改外,没有主要区别:
dart:io 中的 WS:https://api.dart.dev/stable/2.7.0/dart-io/WebSocket-class.html
dart:html 中的 WS:https://api.dart.dev/stable/2.7.0/dart-html/WebSocket-class.html#constructors
如果您仔细观察,这两个类除了创建 Web 套接字实例外,在所有方面都有相同的方法。
dart:io:
简单的无参数构造函数是deprecated。但是有一个factory method 可以使用Socket 创建一个实例。
dart:html:
Websocket constructor 接受 url 字符串和 protocol 对象列表。
【讨论】: