public void Listen() { _messages.OnNext(new StartedListeningMessage(GetHashCode(), _listenAddress, _publishAddress, DateTime.UtcNow)); while (true) { var messageBytes = _incoming.Recv(SendRecvOpt.NOBLOCK); if (messageBytes == null) { continue; } var message = _messageCodec.Deserialize(messageBytes); _messages.OnNext(message.Body); } }