WebSocket抽象

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

该数据流暴露接收到的消息。文本消息的类型为String,二进制消息的类型为List

实现类型

构造函数

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

属性

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

方法

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

运算符

operator ==(Object other) bool
等性运算符。
继承

静态属性

userAgent String?
获取用于 WebSocket 连接的用户代理。
getter/setter配对

静态方法

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