signalR и передача больших данных [закрыто]
Я планирую использовать signalR между клиентом и сервером для связи в реальном времени. Как бы то ни было, время от времени клиент должен отправлять большие данные ~15 Мб на сервер.
1) похоже, signalR не предназначен для отправки больших данных. Была ли добавлена поддержка отправки больших данных в последних выпусках ?
2) Какой самый большой массив данных я могу отправить в сообщении ?
3) не слишком ли медленно разделить большие данные и отправить их в виде меньшего куска ?
4) Каков альтернативный вариант ? Какой-нибудь пример я могу рассмотреть?
5) Могу ли я запустить службу WCF для потоковой передачи больших данных вместе с signalR для связи в реальном времени ?
3 ответов:
Отправка SignalR будет использовать неправильный инструмент для работы. Лучшее, что можно сделать в этой ситуации, - это отправить определенное сообщение через SignalR, которое передало URL в качестве параметра. Затем вы обрабатываете, инициируя стандартную загрузку HTTP GET на основе в клиенте, используя любое количество подходов.
Если вам действительно нужно использовать SignalR, вы можете проверить мой ответ по адресу: как отправить большие данные через SignalR в клиенте .NET
Вы можете добавить строку, которая делает размер сообщения "бесконечным"в вашем запуске.cs, установив MaxIncomingWebSocketMessageSize равным null:
public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null; } }} Шахта работает с ~200кб данных, 10 сообщений отправляет последовательно. Хотя я не знаю, насколько хорошо это работает, если в секунду отправляется больше данных.
Разделить данные и отправить их. вы можете отправить фоновый режим или нормально, Используйте методы сжатия, чтобы уменьшить размер данных.
Comments