Windows are known for not being able to handle many socket connections. Linux might be able to accomplish what you are trying to do. I am not sure how a C# application behaves on Wine. You might want to rewrite it in Java/Python.
what kind of realtime data does the company provide? realtime level 1 quote for all US stocks? I can not find the information from their website. it only says realtime data.
I don't think subscribing to 10000 symbols separately will work. The way I did it in node is to build an object of all the symbols I want to track. Here is a simplified version.Mine had about 5,000 symbols. let symbols = { 'AAPL' : true, 'GOOG' : true }; if (symbols['AAPL']) console.log('exists'); else console.log('does not exist'); symbols['AAPL'] you would replace with symbols[msg.sym] or whatever the field is for the incoming symbol I'm sure there is a way to do this in C# too
The top 2000 symbols have 99% of the volume so there is effectively no difference in performance between subscribing 2000 or 25000.
Windows are known for not being able to handle many socket connections. Linux might be able to accomplish what you are trying to do. I am not sure how a C# application behaves on Wine. You might want to rewrite it in Java/Python.
Sorry I didn't record the error code, and I have totally replaced the WebSocket code with NATS so I have no way to retest.