Broadcast channels instead of internal queues
Simplify the transport of messages and errors from socket reading thread to message consumers by making use of async broadcast and unicast channels.
This is not just simpler and more reliable but also fixes the issue of multiple SignalStream
instances that use the same underlying MessageStream
, stealing each other's messages (#150 (closed)).
Fixes #134 (closed), #150 (closed).
Edited by Zeeshan Ali Khan