messages property
The incoming messages. The session listens to the dart:io socket
from the start, paused until this stream is listened to: the network
is not read before, and dart:io's close never drains the socket
itself (it does so for a socket nobody listens to, and a later
listen then fails). So a session closed before anyone listened still
gives a stream that ends, once the close is done; the messages that
arrive after that close while nobody listens are dropped (nobody
could answer them any more).
Implementation
@override
Stream<Object> get messages => _incoming.stream;