start method
Implementation
void start(Duration? interval) {
_drain();
_sink._pumpOutgoing();
if (interval != null) {
_ping = Timer.periodic(interval, (_) {
final count = _api.aw_ws_pong_count(id);
if (_awaitingPong && count == _pongCount) {
dispose();
return;
}
_pongCount = count;
_awaitingPong = true;
if (_sendDirect(9, Uint8List(0)) < 0) {
dispose();
}
});
}
}