客户端或服务器应用程序的双向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 连接。设置可选的
code
和reason
参数以发送关闭信息到远程对等方。如果省略,则对方将看到 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 - 等性运算符。继承
静态属性
静态方法
-
connect(
String url, {Iterable< String> ? protocols, Map<String, dynamic> ? headers, CompressionOptions compression = CompressionOptions.compressionDefault, HttpClient? customClient}) → Future<WebSocket> - 创建一个新的WebSocket连接。在
url
中提供的URL必须使用ws
或wss
方案。