dart - 客户端断开连接时未调用 dart io websocket
问题描述
我正在尝试检测客户端何时与服务器断开连接。我认为这是正确的做法,但从未将“某人断开连接”打印到控制台。
import 'dart:io';
class VersusServer {
Future<void> run() async {
final PORT = 7171;
var server = await HttpServer.bind(InternetAddress.loopbackIPv4, PORT);
server.forEach(_handleRequest);
print('Server listening on port $PORT.');
}
void _handleRequest(HttpRequest request) async {
if (request.uri.path == '/ws') {
var socket = await WebSocketTransformer.upgrade(request);
print('someone connected');
// MARK: this is the part I am trying to listen to disconnect
socket.done.then((value) => print('someone disconnected'));
socket.listen((message) {
print(message);
});
}
}
}
我的代码有问题吗?提前致谢!
解决方案
推荐阅读
- shell - AWK 只打印有点的行
- google-oauth - 使用访问令牌/刷新令牌使 Google Calendar API 客户端库直接调用 API
- azure - 数据流执行中的感叹号
- c++ - c ++指针将结构新数组指向delphi到DLL函数
- java - Scala `Future.recoverWith` 相当于`CompletionStage`?
- java - 基于 java 流初始化一个字符串会导致一个空字符串
- javascript - 三个 js 无法读取 ShaderPass.js 中未定义的属性“原型”
- node.js - 执行 Node.js 引擎的 Semver 策略
- c++ - 对于 C++ 来说,单个 if 语句对于检查映射中是否存在键是否不好?
- android - 在 Codemagic 中禁用 Google Play 发布