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