AspNetCore SignalR Потоковые разъяснения - PullRequest
0 голосов
/ 03 октября 2018

Я просматривал недавнюю документацию по сигнализатору и наткнулся на новую функцию под названием Streaming .Я также, и мне удалось запустить его с клиентом JS.Тем не менее, я до сих пор не знаю, когда его использовать.

1 - ChannelReader потоковая передача данных одному клиенту?

2 - Если да, в чем разница, чем вызов this.Clients.Caller.Invoke()

3- Допустим, я слушаю внешнюю ленту в реальном времени, например, фондовую биржу, рекомендуется ли использовать поток сигналов?

4- Согласно этой записи писатель живет в пределах Task.Run().Так как же это масштабируемо, если мне нужно отправить поток в реальном времени, используя потоки, скажем, 1000 клиентов?Существуют ли какие-либо концепции масштабируемости использования потоков сигнализаторов вообще?

1 Ответ

0 голосов
/ 04 октября 2018

1 - передает ли ChannelReader данные одному клиенту?

Да.

2 - Если да, в чем разница, чем делать это.Clients.Caller.Invoke ()

Вы можете вызывать только один метод одновременно (последовательно).Пока вы находитесь в вызове, остальные будут находиться в очереди для этого соединения, пока не будет завершено предыдущее.С помощью потоковых методов вы можете запустить поток и передать данные клиенту, в то же время вызывая другие методы в том же концентраторе.

3 - Допустим, я слушаю внешний канал в реальном времени, например, фондовую биржу,рекомендуется ли использовать поток сигналов?

Потоки предназначены для потоковой передачи данных, запускаемых клиентским действием.Вы все еще можете выполнять незапрошенную (не от клиента) потоковую передачу, просто вызывая метод в IHubContext.

4 - Согласно этому сообщению, писатель живет в Task.Run ().Так как же это масштабируемо, если мне нужно отправить поток в реальном времени, используя потоки, скажем, 1000 клиентов?Существуют ли какие-либо концепции масштабируемости использования потоков сигналов в целом?

Масштабируется нормально.Task.Run запускает поток, но вы никогда не держите в качестве заложника потока.

...