Мне нужны быстрые, безопасные и переносимые веб-носки, поэтому я копался в Интернете и наткнулся на WebSocket ++ Студия Зафойд .
У меня нет опыта работы с C ++ (хотя я и опытный программист), но, кажется, я отмечаю все поля, которые мне требуются, и я быстро адаптировал примеры echo_server и telemetry_client в GitHub и собрать доказательство концепции.
Подводя руку к примеру с сервером wss (echo_server_tls), я быстро скомпилировал и использовал простой тестовый клиент, чтобы убедиться, что он работает.
К сожалению, именно здесь моя неопытность подводит меня, я наивно надеялся, что изменение URL-адреса на wss и включение заголовка клиента с поддержкой tls (asio_client.hpp, а не asio_no_tls_client.hpp) приведут меня в правильном направлении!
Это не так, вместо этого выдает ошибку;
[2014-05-29 01:17:58] [application] Get Connection Error: endpoint not secure
Итак … мой вопрос; —
У кого-нибудь есть пример «echo_client_tls», чтобы направить меня в правильном направлении, я очень сомневаюсь, что я первый, кто сделал это (хотя, возможно, просто самый неопытный с c ++).
Я уверен, что могу взять его оттуда (я даже отправлю его обратно в git, поскольку это, вероятно, будет полезно для других нубов, таких как я).
Постскриптум Слава авторам, если они когда-либо читают это, это кажется очень полной реализацией!
Помимо включения заголовка клиента с поддержкой tls, клиент должен будет предоставить обработчик для tls_init
, Вы можете изменить один из существующих примеров клиентов для поддержки tls, добавив следующий обработчик.
_client.set_tls_init_handler([this](websocketpp::connection_hdl){
return websocketpp::lib::make_shared<boost::asio::ssl::context>(boost::asio::ssl::context::tlsv1);
});