Я пытаюсь использовать реализацию cpprestsdk websocket для подключения к серверу websocket. Я использую их пример, который вы можете найти здесь .
Мой код следующий:
// ConsoleApplication3.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <cpprest/ws_client.h>
#include <cpprest/producerconsumerstream.h>
using namespace web;
using namespace web::websockets::client;
int main()
{
websocket_client client;
client.connect(U("wss://echo.websocket.org")).then([]() {
std::cout << "Connected!" << "\n"; /* never gets here, so it looks like my connect() never succeeds?*/
});
websocket_outgoing_message msg;
msg.set_utf8_message("I am a UTF-8 string! (Or close enough...)");
client.send(msg).then([]() { /* exception here, stating it is not connected*/
std::cout << "message sent\n";
});
client.receive().then([](websocket_incoming_message msg) {
return msg.extract_string();
}).then([](std::string body) {
std::cout << body << std::endl;
});
client.close().then([]() { std::cout << "Closed\n"; });
}
Насколько я могу сказать, когда я прохожу через connect()
функция, ничего не похоже на то, что она возвращает ошибку. Однако функция then()
никогда не вызывается, что похоже на то, что функция connect()
не работает.
Когда я добираюсь до client.send(msg)
, я получаю исключение, в котором говорится, что я не подключен. Имеет смысл, потому что выше then()
никогда не выполняется. Я просто не понимаю, почему connect()
не работает, без каких-либо ошибок / исключений.