receive method
Implementation
@override
Stream<AbstractMessage> receive() {
final socket = _socket!;
final onDisconnect = _onDisconnect!;
final onConnectionLost = _onConnectionLost!;
socket.done.then(
(done) {
if (!_goodbyeSent &&
!_goodbyeReceived &&
!onDisconnect.isCompleted &&
!onConnectionLost.isCompleted) {
onConnectionLost.complete();
} else if (!onDisconnect.isCompleted) {
onDisconnect.complete();
}
},
onError: (error) {
if (!_goodbyeSent &&
!_goodbyeReceived &&
!onDisconnect.isCompleted &&
!onConnectionLost.isCompleted) {
onConnectionLost.complete(error);
}
},
);
// TODO set keep alive to true
//_socket.setOption(RawSocketOption.fromBool(??, SO_KEEPALIVE, true), true)
return socket.expand(_consumeInboundChunk);
}