#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. Вы нашли какие-либо решения?