- 应用场景:逆向接口需要传递数据给服务端,需要用长连接
- 心得:第一次接触stomp协议协议,技术记忆都是空白,对全局知识把握不到位,容易犯细节上的错误
- 相关链接:
- 客户端工作流程:
- 设置账号、密码参数、创建连接句柄等初始化工作
- 将参数传递给connect连接流程,由流程传递参数给数据帧构造stomp数据协议,连接流程:
- 首先是由一个”先驱“绑定回调函数,完成初始化工作,这个回调函数主要是用来会话监听,通过递归绑定实现循环监听服务端下发的数据、指令
-
void session::on_read( beast::error_code ec, std::size_t bytes_transferred ) { // Queue up another read and ... ws_.async_read( buffer_, beast::bind_front_handler( &session::on_read, shared_from_this() )); }
-
- 将账号、密码等参数传递给数据帧构造者,完成stomp数据协议的一些字符串格式化,数据帧大概可以分为这几部分:
- 行为标识+操作数据+结束标记
- 这3部分可以分成N块,每个块之间用r\n区分
- 行为标识+操作数据+结束标记
- 将帧转成数据流传递给底层网络模块,由网络模块携带数据帧向服务端发起连接。
- 首先是由一个”先驱“绑定回调函数,完成初始化工作,这个回调函数主要是用来会话监听,通过递归绑定实现循环监听服务端下发的数据、指令
- 发起订阅
- 发送数据
- 取消订阅
- 断开连接
- 释放连接句柄
今天先记录连接流程的原理,其他等心血来潮了再写