最近因为项目需求,需要使用C++实现WebSocket与浏览器进行通讯,针对WebSocket有很多开源的框架,但是本人比较懒,所以干脆手写一个算了.
https://download.csdn.net/download/weixin_34196559/10750141开源库
废话不说,直接上代码
1. 整体代码截图
全部代码,基本400行以内可以搞定
项目结构,因为实现WebSocket需要涉及到加密解密,所以从网上某大神哪里拿来了代码
以上是整体的代码结构, 下面我简单介绍下WebSocket的流程
先贴一张图 WebSocket的基本结构 想详细了解协议内容,看这位大神的博客 https://www.cnblogs.com/songwenjie/p/8575579.html
第一步 客户端首先发送握手请求(看下图, 他长这样), 在这里面最重要的就是那个Sec-WebSocket-Key 数值, 这玩意每次来都是随机,你需要对他按照固定方式加密然后返回给客户端, 多说一句,这请求头的意思打算把协议升级成WebSocket协议, 你要是同意就按照规矩加密数据传回来.
第二步 服务端返回握手响应给客户端(看下图, 他长这样)Sec-WebSocket-Accept: 就是加