当前位置:   article > 正文

websocket++ (c++环境)_websocket c++

websocket c++

目录

一、简介

二、开发准备

1.websocket++下载:

2.boost下载:

三、demo开发

1.websocketpp中自带的demo:

2.基于Qt框架开发的客户端和服务端demo:

一、简介

websocket官方网址:http://websocket.org/

websocket++官方网址:https://www.zaphoyd.com/websocketpp

websocket++使用手册:https://www.zaphoyd.com/websocketpp/manual/

websocketpp 是 C++ 的 WebSocket 客户端/服务器库.

它是一个开源的只包含头文件的 C++ 库,它实现了 RFC6455 WebSocket 协议。它允许向 C++ 程序中集成 WebSocket 客户端和服务器功能。它使用可交换的网络传输模块,包括基于 C++ iostreams 的和基于 Boost Asio 的。

二、开发准备

使用websocket++库,需要websocket++的头文件及它所依赖的boost头文件及库文件。

1.websocket++下载:

        git 网址:https://github.com/zaphoyd/websocketpp

2.boost下载:

(1)window环境可以直接在SOURCEFORGE上下载编译好的库文件。

(2)linux环境(本次在麒麟系统上验证)通过apt search boost命令找到源上的boost版本,然后使用 apt install libboost1.58-dev 将boost库安装到本地。

三、demo开发

1.websocketpp中自带的demo:

上文下载的websocketpp开发包中有一个examples文件夹,其中echo_client和echo_server分别是客户端和服务端的demo的代码,可参考。

2.基于Qt框架开发的客户端和服务端demo:

(1)新建工程,将websocketpp头文件引入,在项目栏右键,将websocketpp文件夹全部加入,在工程文件(.pro)中自动加载里面的文件。如图所示:

 (2)加载boost库及其头文件

window:此处写了绝对路径

  1. LIBS += -LF:\local\boost_1_61_0\stage\lib
  2. INCLUDEPATH += F:\local\boost_1_61_0\

 linux:使用apt命令安装的boost库文件

  1. LIBS += -L/usr/lib/aarch64-linux-gnu -lboost_system -lboost_thread -lboost_filesystem
  2. INCLUDEPATH += /usr/include

 websocket初始化及链接的建立同websocketpp中例子,代码如下:

服务端:

  1. void wpp_sever::InitWpp()
  2. {
  3. try
  4. {
  5. // Set logging settings
  6. m_server.set_access_channels(websocketpp::log::alevel::all);
  7. m_server.clear_access_channels(websocketpp::log::alevel::frame_payload);
  8. // Initialize Asio
  9. m_server.init_asio();
  10. // Register our message handler
  11. m_server.set_message_handler(bind(&on_message,&m_server,::_1,::_2));
  12. // Listen on port 9002
  13. m_server.listen(9002);
  14. // Start the server accept loop
  15. m_server.start_accept();
  16. // Start the ASIO io_service run loop
  17. m_server.run();
  18. }
  19. catch (websocketpp::exception const & e)
  20. {
  21. std::cout << e.what() << std::endl;
  22. }
  23. catch (...)
  24. {
  25. std::cout << "other exception" << std::endl;
  26. }
  27. }

客户端:

  1. void wpp_client::InitSocekt()
  2. {
  3. std::string uri = "ws://127.0.0.1:9002";//访问的地址
  4. try
  5. {
  6. // Set logging to be pretty verbose (everything except message payloads)
  7. m_c.set_access_channels(websocketpp::log::alevel::all);
  8. m_c.clear_access_channels(websocketpp::log::alevel::frame_payload);
  9. // Initialize ASIO
  10. m_c.init_asio();
  11. // Register our message handler
  12. m_c.set_message_handler(bind(&on_message,&m_c,::_1,::_2));
  13. websocketpp::lib::error_code ec;
  14. m_con = m_c.get_connection(uri, ec);
  15. if (ec)
  16. {
  17. std::cout << "could not create connection because: " << ec.message() << std::endl;
  18. }
  19. // Note that connect here only requests a connection. No network messages are
  20. // exchanged until the event loop starts running in the next line.
  21. m_c.connect(m_con);
  22. // Start the ASIO io_service run loop
  23. // this will cause a single connection to be made to the server. c.run()
  24. // will exit when this connection is closed.
  25. m_c.run();
  26. }
  27. catch (websocketpp::exception const & e)
  28. {
  29. std::cout << e.what() << std::endl;
  30. }
  31. }

完整demo代码请自行下载:(包含window下使用的boost库文件和websocket++头文件)

websocket++的客户端&服务端demo-C++文档类资源-CSDN下载1.websocket++的客户端&服务端demo2.包含websocket++头文件3更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_39690016/82901179

参考文章:

C++ WebSocket 库 - 简书WebSocket 是 HTML5 的一个引入注目的特性,它通常用于 Web 端,为构建实时的 Web 应用提供方便。WebSocket 是一个基于 TCP 的协议,它借助于...https://www.jianshu.com/p/64e36cd3ed1aWebSocket使用(C++环境)(一) --- websocket++库的安装与使用_wangdamingll的博客-CSDN博客_websocket++websocket官方网址:http://websocket.org/websocket++官方网址:https://www.zaphoyd.com/websocketppwebsocket++使用手册:https://www.zaphoyd.com/websocketpp/manual/今天接收到一个任务,说是使用websocket,这还不够,只能用C++语言,这就有点尴尬了。...https://blog.csdn.net/wangdamingll/article/details/53412325

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/241868
推荐阅读
相关标签
  

闽ICP备14008679号