工业级生产网络编程的流程做法是将一个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等 应用层格式

tcp支持浏览器websocket协议相关推荐

  1. WebSocket 协议讲解

    来源 通常 Web 应用的交互模式是由客户端向服务端发送 HTTP 请求, 服务端根据客户端的的请求返回相应的数据, 在这样的交互模式下, 通信双方并不是对等的, 因为所有的请求都是由客户端主动发起, ...

  2. http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎

    TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...

  3. 阿里云负载不支持 WebSocket 协议与 WSS 和 Nginx 配置问题

    WebSocket 是 HTML5 下一种新的协议.它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的.它与HTTP一样通过已建立的TCP连接来传输数据,但是它和HTT ...

  4. 阿里云全站加速DCDN全面支持WebSocket协议

    WebSocket协议可以为网站和应用提供真正的双向通信,具有控制开销.保持连接状态.更强实时性.更好的压缩效果等优点,是当下低延时应用最常采用的一种技术协议.为了更好的满足客户在实时通讯场景下的加速 ...

  5. php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  6. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  7. 使用Nginx为TCP/WebSocket协议做反向代理和几个易踩的坑

    通常,我们使用Nginx为后端WEB服务做反向代理或负载均衡,但如果我们的后端服务,并不是HTTP/HTTPS协议,而是TCP协议或WebSocket协议呢 最近遇到一个需求,我们的HTTPS以及MQ ...

  8. 基于netty实现一个简单的支持http和webSocket协议的的服务器(含xxl-job通信模块源码分析)

    文章目录 背景 依赖 包结构 实现 WebSocketServer 业务handler WebSocketServerHandler 测试 xxl-job 源码中基于netty实现的http 总结 参 ...

  9. Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1

    文章目录 服务端PHP(Windows下演示) 安装PHP 启动服务器 结束服务器 客户端Unity(版本Unity2021.3.5f1) 1.发布Windows客户端 ws/wss(不发布微信小游戏 ...

最新文章

  1. android快速充电实现_用一个快充头实现苹果安卓同时快充,实在太赞了!
  2. 【Android APT】编译时技术 ( ButterKnife 原理分析 )
  3. 机房收费系统-- MDI子窗体显示技巧(续vb.net版)
  4. 怎么查看usb读取信息_电脑弹出USB设备时提示该设备正在使用中的解决方法
  5. qt能使用logback_X04Logback的配置
  6. 现代软件工程讲义 6 用户调研
  7. 【2017年第1期】基于外卖物流配送大数据的调度系统
  8. Flutter实现倒计时功能
  9. JavaScript之节点的创建、替换、删除、插入
  10. paip.css的覆盖
  11. stata 亚组分析_手把手教你用R的gemtc包对分类变量进行贝叶斯网状Meta分析
  12. python实现word批量转pdf
  13. ocr证件护照识别器,阅读器,扫描仪
  14. 鸿蒙开发实例|构建轻量级智能穿戴设备用户界面
  15. python实现GUI设计的方法
  16. 关于length与length()
  17. java向微信公众号---发送模板和图文消息
  18. wagon-maven-plugin插件实现自动化构建部署到服务器
  19. Windows实用工具推荐
  20. ue4中隐藏灯光和相机图标_[HDRP]物理灯光是什么?科普向

热门文章

  1. 2018工业互联网峰会在京召开
  2. 18.通过按键切换LED颜色
  3. 多模态机器学习概述及其音视频融合总结
  4. 第六章 网络学习相关技巧1(最优路径梯度)
  5. 完美兼容IE_Opera_Firefox等主流浏览器的锁定表格的 表头以及表头列
  6. C++中抽象类的简单使用
  7. 掌门教育秉持因材施教原则,打造个性化教学模式
  8. 打印文字一边清晰而另一边不清晰的解决方法
  9. Unity资源包共享
  10. 支持win7的无损分区大小调整软件