tcp支持浏览器websocket协议

工业级生产网络编程的流程做法是将一个socket在应用成对应一个sockitem结构体。具体流程如下:
在这里插入图片描述
对于业务处理在recv_cb回到函数中处理相关的业务。

1 websocket应用场景

websocket典型的应用场景:
在这里插入图片描述
对于一般服务器主动推送信息给客户端可选中websocket协议
常用于网页聊天,即时通讯,弹幕等。

2 websocket协议数据帧

如下图是websocket协议帧
在这里插入图片描述
包括三部分:操作玛,掩码,数据长度
长度三种情况:
1: 0~125 1个字节
2: 126~2^23
3: 127~2^71

3 封装websocket协议

websocket三部分组成:
1 握手数据
2 通信(握手成功后)
3 终止
编码实现的时候,无法通过该recv_cb接收到的数据,判断处理。对于流程化的东西,引入状态机来处理上层业务
在这里插入图片描述
对于参考nginx中的也是引入了状态机来处理的。

4 扩展设计自定义协议tcp核心点

1 操作码 fin,handshark等
2 包长度 tcp分包粘包问题 解决方案:添加包长度和包分隔符
3 mask_key 加密传输, 不做明文传输
4 payload data json/xml,protobuf等 应用层格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丰恒谷

你的鼓励是我最大创作动力!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值