Unexpected connection interrupts at high data load

We are using Crossbar as router for communication between several hardware controlling nodes and user interfaces. One component is controlling a 6kx6k CCD sensor creating up to 80MB of data at one exposure. After exposure data are transmitted (using an asyncio coroutine) in 32k chunks via Crossbar to the user interface side. It works well up to 4kx4k (about 40MB) pictures but becomes unstable for 6kx6k. Unstable means: The component which controls the CCD and manages the data transfer receives an unexpected onDisconnect after the transfer of data is done. Any idea why? Is there a load balancing in Crossbar that may kick a client which consumes too much traffic?

Hi!

one idea rgd

receives an unexpected onDisconnect after the transfer of data is done. Any idea why? Is there a load balancing in Crossbar that may kick a client which consumes too much traffic?

would be, in your client, are you yielding control to the reactor / event loop in between transmitting chunks?

If not, then the client will not be able to respond to WebSocket pings sent from the router.

The scenario I am assuming is: you are using WebSocket, and your Crossbar.io is doing WebSocket heartbeating, and it doesn’t set auto_ping_restart_on_any_traffic.

IOW: you might try tuning the following WebSocket options in Crossbar.io:

  • auto_ping_interval
  • auto_ping_timeout
  • auto_ping_size
  • auto_ping_restart_on_any_traffic

Cheers,
/Tobias