The initial handshake of a websocket connection can cause additional latency. It's sometimes more performant to utilize only one websocket connection per client.
Refactor consumer.py and our client code to utilize a single websocket per client. Probably will need a SharedReactPyConsumer class
This will likely require changing our websocket's URL routing schema.
We might want to make this option configurable via REACTPY_SHARED_WEBSOCKET, since the old behavior has the potential to be more performant when using multiple ASGI workers.
Current Situation
The initial handshake of a websocket connection can cause additional latency. It's sometimes more performant to utilize only one websocket connection per client.
Proposed Actions
Refactor
consumer.py
and our client code to utilize a single websocket per client. Probably will need aSharedReactPyConsumer
classThis will likely require changing our websocket's URL routing schema.
We might want to make this option configurable via
REACTPY_SHARED_WEBSOCKET
, since the old behavior has the potential to be more performant when using multiple ASGI workers.