SignalR потоковая передача в обе стороны одновременно - PullRequest
0 голосов
/ 15 февраля 2020

используя SignalR, вы можете выполнять потоковую передачу с сервера на клиент и с сервера на сервер отдельно. Можно ли сделать это обоими способами одновременно?

Предположим, у нас есть данные от датчиков, поступающих с устройства IoT, и как только мы получим их на сервере, мы хотим передать их на другие устройства. Используя IAsyncEnumerable, как это можно сделать?

Сервер-клиент-хаб:

public async  IAsyncEnumerable<string> GetTempData()
        {

            while (true)
            {
                await Task.Delay(1000);
                yield return DateTime.Now.Second.ToString();
            }

        }

клиент-сервер

public async Task SendTempData(IAsyncEnumerable<string> lines)
        {
            await foreach (var line in lines)
            {
                await Clients.Others.SendAsync("GetData", line);
            }

        }

, как вы видите, я ' m в настоящее время использует SendAsyn c, но хочет заменить его на потоки. Я не знаю, как передать данные SendTempData в GetData здесь.

1 Ответ

0 голосов
/ 23 февраля 2020

Я обнаружил, что у SignalR нет двунаправленной потоковой передачи, для этого вам нужно использовать другие методы, такие как gRP C.

...