websocket++库的使用:基于websocket模块收发RTSP 消息,作为一个RTSP测试工具

本文介绍了如何利用WebSocket++库在C++项目中实现WebSocket客户端和服务器端功能,以收发RTSP消息。WebSocket++是一个开源库,仅包含C++头文件,支持RFC 6455协议。文中提到了其他可选的C/C++ WebSocket库,如uWebSockets、Crow和Beast,并讨论了WebSocket相对于HTTP的长连接优势。此外,还探讨了WebSocket的握手过程和在C++中实现WebSocket服务器端的注意事项,包括对Boost和openssl库的依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说,*.h里面只有声明,没有实现,而*.hpp里声明实现都可以有,后者可以减少.cpp的数量。 .h放声明,.cpp放实现,.hpp就是声明与实现在一起,比如模块类。   hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。        不可包含全局对象和全局函 由于hpp本质上是作为.h被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。要避免这种情况,需要去除全局对象,将全局函数封装为类的静态方法。

 

随着手机游戏、H5游戏以及微信小游戏的普及,越来越多的客户端-服务器端的通讯采用websocket协议。Websocket协议是全双工的、基于数据帧的、建立在tcp之上的长连接协议。Websocket的协议是头是字符串的兼容http的,而握手之后的数据帧则是紧凑的二进制,所以websocket是紧凑和高效的。现在主流的PC浏览器以及手机浏览器对websocket都实现了非常成熟的支持。Websocket协议有着统一的标准的,所有websocket通讯无论实现的语言如何,无论使用的终端如何,最终都是一致的。   Websocket有公共的标准,有很多公共的库可以使用,比如web端,各个浏览器都已原生的支持websocket,所以拿来即用,非常的方便。比如cocos2dx就继承了websocket。 Websocket相对于http是长连接的,这样就可以实现实时的推送消息。 Websocket可以说完全治好了大家关于长连接使用什么协议的纠结。再游戏行业,服务器一般都是使用C++专门开发的网络程序,常规的一般都是使用比较传统的二进制协议,现在想用websocket的人越来越多,但是可以用于服务器端的websocket库却很少,要不就是库太重量级依赖了太多不需要的模块要不就是绑定了特定的网络接口实现。

websocketpp(WebSocket++)  是一个开源库,开源库的实现在 Y:\sync_7.19_listenSW\sync\vendors\websocketpp。   WebSocket++ 是一个只包含 C++ 头文件的 WebSocket 的 C++ 开发包,实现了 RFC 6455 也就是 WebSocket 协议。可以在 C++ 应用中实现 WebSocket 客户端和服务器端功能。使用可交换的网络传输模块,包括 C++ iostreams 和 Boost Asio。   这里汇总已知的可以在 C++ 中使用的 WebSocket 库。 uWebSockets、Crow、websocketpp、Beast 这样几个 C/C++ 的 WebSocket 库。                         基于C/C++的WebSocket库:libwebsockets是一个纯C语言的轻量级WebSocket库,它的CPU、内存占用很小,同时支持作为服务器端/客户端。 WebSocket++是一个仅仅由头文件构成的C++库,它实现了WebSocket协议(RFC6455),通过它,你可以在C++项目中使用WebSocket客户端或者服务器。WebSocket++使用两个可以相互替换的网络传输模块,其中一个基于C++ I/O流,另一个基于Asio。

Poco Websocket  POCO C++ 库是一个跨平台的 C++ 网络库。其中包含了 WebSocket 的实现模块。

WebSocket的C++服务器端实现:由于需要在项目中增加Websocket协议,与客户端进行通信,不想使用开源的库,比如WebSocketPP,就自己根据WebSocket协议实现一套函数,完全使用C++实现。代码已经实现&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36973999

你的鼓励是我对你的帮助的回报

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值