Первый раз постер.Это мой первый опыт разработки микросервиса с использованием .NET.Клиенты будут использовать REST API для запроса сервиса, API будет использовать микросервис для получения результатов и отправки обратно клиентам.REST API собирается использовать SignalR для возврата данных с помощью обратного вызова.Ожидаются два клиентских приложения: одно будет разработано в .NET, а другое в PYTHON для потребителя сервиса.Я могу выполнить успешное тестирование с помощью клиента .NET (с использованием Microsoft.AspNet.SignalR.Client), однако, когда я пытаюсь использовать клиент PYTHON (используя клиент-сигнал), я не могу вызвать обратный вызов из API дляконкретный клиент (если я отправлю ответ ВСЕМ клиентам, которые работают).Я считаю, что в клиентском приложении .NET после подключения к HUB я могу получить ConnectionId, используя HubConnection.ConnectionId.Затем, когда я выполняю вызов REST API, я передаю тот же ConnectionId, и API использует ConnectionId для отправки ответа с использованием SignalR.Однако в клиенте PYTHON я не могу найти атрибут ConnectionId в объекте Connection.Кто-нибудь знает, как я могу получить ConnectionId в клиенте PYTHON (или есть какой-то другой подход, которому я должен следовать).
Это клиент .NET, который работает
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).Result;
System.Console.ReadLine();
ЭтоКлиент PYTHON, но как найти ConnectionId
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()