Zaphoyd websocketpp和wss(TLS)客户端示例

时间:2014-05-29 01:31:59

标签: c++ ssl wss websocket++

我需要快速,安全和便携的websockts,所以我一直在互联网上挖掘,我通过Zaphoyd Studios遇到了WebSocket ++。

我没有c ++经验(虽然我是一名熟练的程序员)但它似乎勾选了我需要的每一个框,我很快在github调整了echo_server和telemetry_client示例,并将概念证明放在一起。 / p>

设置我的手到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

所以...我的问题; -

有没有人有#34; echo_client_tls"例如,为了让我朝着正确的方向前进,我非常怀疑我是第一个这样做的人(也许只是对c ++最没经验的人)。

我相信我可以从那里拿走它(我甚至会把它提交给git,因为它可能对我自己的其他新手很有用。)

P.S。感谢作者如果他们读过这篇文章,这似乎是一个非常完整的实现!

1 个答案:

答案 0 :(得分: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);
});