WebSocketTransformer提供了将HttpRequest升级为WebSocket连接的能力。它支持将单个HttpRequest升级以及将HttpRequest流升级。
要升级单个HttpRequest,请使用静态upgrade方法。
HttpServer server;
server.listen((request) {
if (...) {
WebSocketTransformer.upgrade(request).then((websocket) {
...
});
} else {
// Do normal HTTP request processing.
}
});
WebSocketTransformer实现了一个流转换器,它将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< ) → Stream<HttpRequest> streamWebSocket> - 转换提供的
stream
。继承 -
cast<
RS, RT> () → StreamTransformer< RS, RT> - 提供此流转换器的
StreamTransformer<RS, RT>
视图。继承 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承
-
toString(
) → String - 此对象的字符串表示。继承
运算符
静态方法
-
isUpgradeRequest(
HttpRequest request) → bool - 检查请求是否为有效的WebSocket升级请求。
-
upgrade(
HttpRequest request, {dynamic protocolSelector(List< String> protocols)?, CompressionOptions compression = CompressionOptions.compressionDefault}) → Future<WebSocket> - 将 HttpRequest 升级为 WebSocket 连接。如果请求不是有效的WebSocket升级请求,将返回状态码为500的HTTP响应。否则,返回的未来将在升级过程完成后完成。