4

I am planning to use signalR between Client and server for some real time communication. How ever every now and then the client need to send large data ~15MB to the server.

1) Looks like signalR is not meant for sending large data. Have they added any support for sending large data in the recent releases ?

2) What is the largest data array I can send in a message ?

3) Is it too slow to split the large data and send it as smaller chunk ?

4) What is the alternate option ? Any example I can look into?

5) Can I run WCF service to stream large data along with signalR for real time communication ?

coolshashi
  • 420
  • 1
  • 6
  • 19
  • Possible duplicate of [How to send big data via SignalR in .NET client](https://stackoverflow.com/questions/24262041/how-to-send-big-data-via-signalr-in-net-client) – Joshua Aug 25 '18 at 14:20

3 Answers3

9

Sending over SignalR would be using the wrong tool for the job. Best thing to do in this situation is send a specific message over SignalR that passed the URL as a parameter. Then you handle by triggering a standard HTTP GET based download in the client using any number of approaches.

Drew Marsh
  • 33,111
  • 3
  • 82
  • 100
1

If you really, really need to use SignalR, you can check out my answer at: How to send big data via SignalR in .NET client

You can add a line that makes the message size 'infinite 'in your Startup.cs by setting the MaxIncomingWebSocketMessageSize to null:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
    app.MapSignalR();
    GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null;
    }
}

} Mine works with ~200kb of data, 10 messages send consistently. I don't know how well it works if there is more data send per second though.

Community
  • 1
  • 1
Alexander
  • 1,554
  • 2
  • 16
  • 23
0

Split the data and send it. you can send background mode or normally, Use Compression techniques, so that you can reduce the data size.