Skip to content

Add MultiplexedChamber

Allow sending multiple items simultaneously, and break up large sends into fragments to avoid overloading connections.

Considerations:

  • no native support in WebSockets (protocol extensions exist but are not supported)
  • needs backpressure information from connection (only send next fragment when not many pending fragments) to allow sending short messages while large files are in progress
  • will need to be either fixed channel definitions or have some kind of channel type identifier with the data
  • sending to "any" will need to be solved on the client side and applied to all packets, to ensure all packets reach the same target
  • only continue sending to recipients who received first packet (in send-to-all cases may be easier to keep sending to all regardless) - if all recipients leave, stop sending
  • could be nice to provide in-progress indicators (e.g. for progress bars for file transfers)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information