on connection lost will only complete if the other end closes unexpectedly
@override Completer? get onConnectionLost => null;