首页 > 解决方案 > 客户端断开连接时未调用 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);
      });
    }
  }
}

我的代码有问题吗?提前致谢!

标签: dartdart-io

解决方案


推荐阅读