we've written a prototype to test SignalR performance to check whether we can use it for our software. In that prototype we've tested both, forwarding data to clients via PersistentConnection and via HubConnection.
Our stresstest consists of three components:
- 1 "client" that registers to the hub and subscribes to messages
- 1 hub that is responsible for receiving and forwarding messages (selfhosted)
- 1 "driver" that involves 5 threads where each of thread fires 1000 messages through the hub to the clients
The PersistentConnection runs rather stable, but in the HubConnection we noticed lots of threads in the Hub and long delays (varies between 1 and 10 seconds) between every few hundred packets. The delays mainly occur within the Hub (and also between the hub and the client). We also have slight delays within the delivery from the "driver" to the Hub. With delay I mean that the method call to the Hub return delays (in the driver) or that the client receive method call is called much later. From time to time we also have some messages lost (not delivered to the client).
Any idea where that might come from? Is this a known bug? Is there any option that we can tweak? I have a complete solution as working example that I can provide upon request.
Thx alex