Клиентское приложение Python SignalR — Как получить идентификатор соединения после подключения к концентратору SignalR

#c# #python #.net #signalr #microservices

#c# #python #.net #signalr #микросервисы

Вопрос:

Плакат первого раза. Это мой первый опыт разработки микросервиса с использованием .NET. Клиенты будут использовать REST API для запроса сервиса, API будет использовать микросервис для получения результатов и отправки обратно клиентам. REST API будет использовать SignalR для возврата данных с помощью обратного вызова. Ожидается наличие двух клиентских приложений, одно из которых будет разработано на .NET, а другое на PYTHON для использования сервиса. Я могу выполнить успешный тест, используя .СЕТЕВОЙ клиент (с использованием Microsoft.AspNet.SignalR.Клиент), однако, когда я пытаюсь использовать PYTHON client (используя signalr-client), я не могу вызвать обратный вызов из API для конкретного клиента (если я отправляю ответ ВСЕМ клиентам, который работает). Причина, по которой я считаю, заключается в том, что в клиентском приложении .NET после подключения к концентратору я могу получить connectionId с помощью HubConnection.Идентификатор соединения. Затем, когда я вызываю REST API, я передаю тот же connectionId, и API использует connectionId для отправки ответа с использованием SignalR. Однако в клиенте PYTHON я не могу найти атрибут connectionId в объекте Connection. Кто-нибудь знает, как я могу получить connectionId в клиенте PYTHON (или есть какой-то другой подход, которому мне нужно следовать).

Это .СЕТЕВОЙ клиент, который работает

 
    HttpClient client = new HttpClient();
    HubConnection hubConnection = new HubConnection("http://localhost:12247");
    var hubProxy = hubConnection.CreateHubProxy("MyTestHub");
    Action<string> onUpdate = str => System.Console.WriteLine($"received: {str}");

    hubConnection.Start()
        .ContinueWith(t =>
        {
            hubProxy.On("OnUpdateCallback", onUpdate);
        }).Wait();

    var guid = Guid.Parse(hubConnection.ConnectionId);
    var response = client.PostAsJsonAsync("http://localhost:12247/api/Values", guid).Resu<
    System.Console.ReadLine();

  

Это клиент PYTHON, но как найти идентификатор соединения

 
    with Session() as session:
        connection = Connection("http://localhost:12247/signalr", session)
        hub = connection.register_hub('MyTestHub')
        connection.start()

        def onUpdate(data):
            print('received: '   str(data))

        hub.client.on('OnUpdateCallback', onUpdate)

        with connection:
            response = requests.post("http://localhost:12247/api/Values", json=???) #how to find connectionid

    sys.stdin.readline()

  

Комментарии:

1. вы нашли решение для этого?

2. Вы нашли какие-либо решения?