WebSocketTransformer 提供了将 HttpRequest 升级为 WebSocket 连接的能力。它支持将单个 HttpRequest 升级和升级 HttpRequest 流。
要升级单个 HttpRequest,请使用静态 upgrade 方法。
HttpServer server;
server.listen((request) {
if (...) {
WebSocketTransformer.upgrade(request).then((websocket) {
...
});
} else {
// Do normal HTTP request processing.
}
});
要转换 HttpRequest 事件流,因为它实现了一个流转换器,将 HttpRequest 流转换为 WebSocket 流,通过将每个 HttpRequest 从 HTTP 或 HTTPS 服务器升级到 WebSocket 协议来实现。
server.transform(new WebSocketTransformer()).listen((webSocket) => ...);
此转换器努力按照 RFC6455 规范实现 WebSocket。
构造函数
-
WebSocketTransformer({dynamic protocolSelector(List<
String> protocols)?, CompressionOptions compression = CompressionOptions.compressionDefault}) - 创建一个新的 WebSocketTransformer。工厂
属性
- hashCode → int
- 此对象的哈希码。无设置器继承
- runtimeType → Type
- 对象运行时类型的表示。无设置器继承
方法
-
bind(
Stream< HttpRequest> stream) → Stream<WebSocket> - 转换提供的
stream
。继承 -
cast<
RS, RT> () → StreamTransformer< RS, RT> - 提供此流转换器的
StreamTransformer<RS, RT>
视图。继承 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承
-
toString(
) → String - 此对象的字符串表示形式。继承
操作符
-
operator ==(
Object other) → bool - 等号操作符。继承
静态方法
-
isUpgradeRequest(
HttpRequest request) → bool - 检查请求是否是有效的WebSocket升级请求。
-
upgrade(
HttpRequest request, {dynamic protocolSelector(List< String> protocols)?, CompressionOptions compression = CompressionOptions.compressionDefault}) → Future<WebSocket> - 将HttpRequest升级为
WebSocket
连接。如果请求不是有效的WebSocket升级请求,将返回状态码为500的HTTP响应。否则,返回的未来将在升级过程完成后完成,并返回WebSocket
。