WebSocket抽象

用于客户端或服务器应用程序的双向HTTP通信对象。

该流公开接收到的消息。文本消息的类型为String,二进制消息的类型为List<int>

实现类型

构造函数

WebSocket()
WebSocket.fromUpgradedSocket(Socket socket, {String? protocol, bool? serverSide, CompressionOptions compression = CompressionOptions.compressionDefault})
从一个已经升级的套接字创建WebSocket。
工厂

属性

closeCode int?
当WebSocket连接关闭时设置的关闭代码。如果没有关闭代码可用,则此属性将为null
无设置器
closeReason String?
当WebSocket连接关闭时设置的关闭原因。如果没有关闭原因可用,则此属性将为null
无设置器
done Future
返回一个当StreamSink完成时完成的future。
无设置器继承
extensions String
扩展属性最初为空字符串。在WebSocket连接建立后,此字符串反映服务器使用的扩展。
无设置器
first Future
此流的第一个元素。
无设置器继承
hashCode int
此对象的哈希码。
无设置器继承
isBroadcast bool
此流是否为广播流。
无设置器继承
isEmpty Future<bool>
此流是否包含任何元素。
无设置器继承
last Future
此流的最后一个元素。
无设置器继承
length Future<int>
此流中的元素数量。
无设置器继承
pingInterval Duration?
ping信号之间的间隔。
获取器/设置器对
协议 String?
协议属性最初为空字符串。在WebSocket连接建立后,该值将变为服务器选择的子协议。如果没有协商子协议,该值将保持为null
无设置器
readyState int
返回连接的当前状态。
无设置器
runtimeType Type
对象运行时类型的表示。
无设置器继承
single Future
此流的单个元素。
无设置器继承

方法

add(dynamic data) → void
在WebSocket连接上发送数据。在data中的数据必须是String,或者包含字节的List<int>
override
addError(Object error, [StackTrace? stackTrace]) → void
向接收器添加一个error
inherited
addStream(Stream stream) Future
在WebSocket连接上从流发送数据。来自stream的每个数据事件都将作为一个单独的WebSocket帧发送。来自stream的数据必须是String或包含字节的List<int>
override
addUtf8Text(List<int> bytes) → void
发送由bytes表示的文本消息。
any(bool test(dynamic element)) Future<bool>
检查test是否接受此流提供的任何元素。
inherited
asBroadcastStream({void onListen(StreamSubscription subscription)?, void onCancel(StreamSubscription subscription)?}) Stream
返回一个多订阅流,它产生与这个相同的事件。
inherited
asyncExpand<E>(Stream<E>? convert(dynamic event)) Stream<E>
将每个元素转换为一个异步事件的序列。
inherited
asyncMap<E>(FutureOr<E> convert(dynamic event)) Stream<E>
创建一个新的流,该流的每个数据事件都异步映射到一个新事件。
inherited
cast<R>() Stream<R>
将此流适配为 Stream<R>
inherited
close([int? code, String? reason]) Future
关闭 WebSocket 连接。设置可选的 codereason 参数以向远程对等发送关闭信息。如果省略,则对等方将看到 WebSocketStatus.noStatusReceived 代码,没有原因。
override
contains(Object? needle) Future<bool>
返回 needle 是否出现在此流提供的元素中。
inherited
distinct([bool equals(dynamic previous, dynamic next)?]) Stream
如果数据事件与上一个数据事件相同,则跳过数据事件。
inherited
drain<E>([E? futureValue]) Future<E>
丢弃此流上的所有数据,但会在完成或发生错误时发出信号。
inherited
elementAt(int index) Future
返回此流中第 index 个数据事件的值。
inherited
every(bool test(dynamic element)) Future<bool>
检查 test 是否接受此流提供的所有元素。
inherited
expand<S>(Iterable<S> convert(dynamic element)) Stream<S>
将此流的每个元素转换为一个元素的序列。
inherited
firstWhere(bool test(dynamic element), {dynamic orElse()?}) Future
查找此流中第一个与 test 匹配的元素。
inherited
fold<S>(S initialValue, S combine(S previous, dynamic element)) Future<S>
通过重复应用 combine 来组合一系列值。
inherited
forEach(void action(dynamic element)) Future<void>
对此流中的每个元素执行 action
inherited
handleError(Function onError, {bool test(dynamic error)?}) Stream
创建一个包装流,拦截来自此流的某些错误。
inherited
join([String separator = ""]) Future<String>
将元素的字面字符串表示形式组合成单个字符串。
inherited
lastWhere(bool test(dynamic element), {dynamic orElse()?}) Future
查找与此流匹配的最后一个元素。
inherited
listen(void onData(dynamic event)?, {Function? onError, void onDone()?, bool? cancelOnError}) StreamSubscription
为此流添加一个订阅。
inherited
map<S>(S convert(dynamic event)) Stream<S>
将此流的每个元素转换成新的流事件。
inherited
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
inherited
pipe(StreamConsumer streamConsumer) Future
将此流的每个事件传递到streamConsumer
inherited
reduce(dynamic combine(dynamic previous, dynamic element)) Future
通过重复应用 combine 来组合一系列值。
inherited
singleWhere(bool test(dynamic element), {dynamic orElse()?}) Future
在此流中查找匹配 test 的单个元素。
inherited
skip(int count) Stream
跳过此流中前 count 个数据事件。
inherited
skipWhile(bool test(dynamic element)) Stream
在数据事件匹配 test 的同时跳过。
inherited
take(int count) Stream
提供最多此流的第一个 count 个数据事件。
inherited
takeWhile(bool test(dynamic element)) Stream
test 成功时传递数据事件。
inherited
timeout(Duration timeLimit, {void onTimeout(EventSink sink)?}) Stream
创建一个具有与此流相同事件的新的流。
inherited
toList() Future<List>
将此流的所有元素收集到一个 List 中。
inherited
toSet() Future<Set>
将此流的数据收集到一个 Set 中。
inherited
toString() String
此对象的字符串表示形式。
inherited
transform<S>(StreamTransformer<dynamic, S> streamTransformer) Stream<S>
streamTransformer 应用到此流。
inherited
where(bool test(dynamic event)) Stream
从这个流创建一个新的流,丢弃一些元素。
inherited

运算符

operator ==(Object other) bool
相等运算符。
inherited

静态属性

userAgent String?
获取用于 WebSocket 连接的用户代理。
获取器/设置器对

静态方法

connect(String url, {Iterable<String>? protocols, Map<String, dynamic>? headers, CompressionOptions compression = CompressionOptions.compressionDefault, HttpClient? customClient}) Future<WebSocket>
创建一个新的 WebSocket 连接。在 url 中提供的 URL 必须使用 wswss 方案。

常量

closed → const int
closing → const int
connecting → const int
连接的可能状态。
open → const int