纪念一下windows下vs2015 websocket client爬出来的坑!!!!

特么的特么的特么的!!!!整个网络中愣是没有找到完整的websocket client例子!!!!

libwebsocket首先编译出来,妈蛋例子复杂到都是什么鬼?

websocketpp官网的windows编译、使用readme在哪里?????在哪里???

 

下载boost:https://jaist.dl.sourceforge.net/project/boost/boost-binaries/ (1.69.0)

下载openssl:https://slproweb.com/products/Win32OpenSSL.html (1.1.1a)

下载websocketpp:https://github.com/zaphoyd/websocketpp (master)

 

请分别下载好32和64位的,并安装。

 

安装完boost以及openssl后vs2015新建win32工程。

项目配置,添加Include Directories如下(路径随编译位数自行修改):

 

项目配置,添加Library Directories如下(路径随编译位数自行修改):

 

以上二项摘自 https://blog.csdn.net/huanggang982/article/details/53418503 感谢!亦可常规添加至C/C++>>General>>Additional 和 Linker>>General

添加ssl 静态库,(用以支持wss)

 

至此环境配置完成,找到websocketpp\examples\print_client_tls.cpp,将内容靠柏至vs 工程中,编译。

报错 "strcasecmp undefined"

 

增加宏:#define strcasecmp stricmp

 

编译通过!

 

运行与公司web连接,报错:

Get Connection Error: endpoint not secure

什么鬼?什么鬼?什么鬼?

联想到之前用libwebsocket时需要跳过ssl验证之类,定位到demo中的 on_tls_init 函数,

context_ptr on_tls_init(const char * hostname, websocketpp::connection_hdl) {
    context_ptr ctx = websocketpp::lib::make_shared<boost::asio::ssl::context>(boost::asio::ssl::context::sslv23);

    try {
        ctx->set_options(boost::asio::ssl::context::default_workarounds |
                         boost::asio::ssl::context::no_sslv2 |
                         boost::asio::ssl::context::no_sslv3 |
                         boost::asio::ssl::context::single_dh_use);


        ctx->set_verify_mode(boost::asio::ssl::verify_peer);
        ctx->set_verify_callback(bind(&verify_certificate, hostname, ::_1, ::_2));

        // Here we load the CA certificates of all CA's that this client trusts.
        ctx->load_verify_file("ca-chain.cert.pem");
    } catch (std::exception& e) {
        std::cout << e.what() << std::endl;
    }
    return ctx;
}

可是,这里面又是什么鬼,真的没和web打过多少交道,问度娘,0相关,google,只找到了一个老外碰到了相同的问题!

https://stackoverflow.com/questions/23924408/zaphoyd-websocketpp-and-wss-tls-client-example

老外都崩溃了要换python,有图有真相!

不过,万幸有人做了回答:

 

于是直接验证函数中直接返回这老外的回答,连接成功!收到了WEB发来的消息!!真是TMD!!

那么多人推荐的libwebsocket&websocketpp,愣是没有一个完整的使用手册?

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值