Я использую cpprestsdk на клиенте и .net core 2.1 на стороне сервера.Все работает, кроме закрывающей части.
// C++
web::websockets::client::websocket_callback_client _client;
//connecting and working with websocket...
_client.close().wait();
// C#
while (!Socket.CloseStatus.HasValue)
{
//sending/reciving data
}
await Socket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Connection closed", CancellationToken.None);
Проблема в том, что _client.close (). Wait ();никогда не выходит.Сервер получает запрос на закрытие и успешно вызывает CloseOutputAsync.И я не могу понять, почему он никогда не выходит из _client.close (). Wait () ;.Похоже, что существует некоторая проблема с рукопожатием между реализациями ядра C ++ и .net, и ему не удалось обойти это решение.Есть ли способ заставить _client.close (). Wait ();закрыть соединение и не дождаться рукопожатия с сервера?Или с кодом сервера при закрытии веб-сокета что-то не так?