Skip to content

Real-time (ish) data messaging over WebSockets, inspired by RTMFP

License

Notifications You must be signed in to change notification settings

zenomt/rtwebsocket

Repository files navigation

RTWebSocket

RTWebSocket is a simple protocol, inspired by RTMFP (RFC 7016), that multiplexes prioritized message flows over a WebSocket connection. A reference implementation is provided here in JavaScript. A C++ implementation is available in the RTMFP Library project test directory.

Protocol features include:

  • Multiple parallel unidirectional message flows over a single WebSocket
  • Flows have binary metadata instead of port numbers
  • Return flow association for generalized bidirectional communication
  • The sender can abandon a message after queuing, even if transmission of the message has started
  • Independent per-flow flow control

Features of the reference implementation:

  • A message can be given an expiration time when queued, after which it is automatically abandoned
  • Queuing a message returns a WriteReceipt that can be used to track delivery and manually abandon the message
  • Bufferbloat mitigation
  • A new incoming return flow arrives as a callback on the flow to which it is associated
  • Flow priority/precedence can be changed on the fly
  • The receiver can suspend message delivery per-flow

The protocol is described in protocol.

Web IDL documentation for the reference implementation is in API.md.

License

Licensed under the MIT License.

About

Real-time (ish) data messaging over WebSockets, inspired by RTMFP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published