Пример клиента Zaphoyd websocketpp и wss (TLS)

Мне нужны быстрые, безопасные и переносимые веб-носки, поэтому я копался в Интернете и наткнулся на 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, поскольку это, вероятно, будет полезно для других нубов, таких как я).

Постскриптум Слава авторам, если они когда-либо читают это, это кажется очень полной реализацией!

5

Решение

Помимо включения заголовка клиента с поддержкой 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);
});
4

Другие решения


По вопросам рекламы [email protected]