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等 应用层格式
tcp支持浏览器websocket协议相关推荐
- WebSocket 协议讲解
来源 通常 Web 应用的交互模式是由客户端向服务端发送 HTTP 请求, 服务端根据客户端的的请求返回相应的数据, 在这样的交互模式下, 通信双方并不是对等的, 因为所有的请求都是由客户端主动发起, ...
- http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎
TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...
- 阿里云负载不支持 WebSocket 协议与 WSS 和 Nginx 配置问题
WebSocket 是 HTML5 下一种新的协议.它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的.它与HTTP一样通过已建立的TCP连接来传输数据,但是它和HTT ...
- 阿里云全站加速DCDN全面支持WebSocket协议
WebSocket协议可以为网站和应用提供真正的双向通信,具有控制开销.保持连接状态.更强实时性.更好的压缩效果等优点,是当下低延时应用最常采用的一种技术协议.为了更好的满足客户在实时通讯场景下的加速 ...
- php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...
- workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...
- 使用Nginx为TCP/WebSocket协议做反向代理和几个易踩的坑
通常,我们使用Nginx为后端WEB服务做反向代理或负载均衡,但如果我们的后端服务,并不是HTTP/HTTPS协议,而是TCP协议或WebSocket协议呢 最近遇到一个需求,我们的HTTPS以及MQ ...
- 基于netty实现一个简单的支持http和webSocket协议的的服务器(含xxl-job通信模块源码分析)
文章目录 背景 依赖 包结构 实现 WebSocketServer 业务handler WebSocketServerHandler 测试 xxl-job 源码中基于netty实现的http 总结 参 ...
- Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1
文章目录 服务端PHP(Windows下演示) 安装PHP 启动服务器 结束服务器 客户端Unity(版本Unity2021.3.5f1) 1.发布Windows客户端 ws/wss(不发布微信小游戏 ...
最新文章
- android快速充电实现_用一个快充头实现苹果安卓同时快充,实在太赞了!
- 【Android APT】编译时技术 ( ButterKnife 原理分析 )
- 机房收费系统-- MDI子窗体显示技巧(续vb.net版)
- 怎么查看usb读取信息_电脑弹出USB设备时提示该设备正在使用中的解决方法
- qt能使用logback_X04Logback的配置
- 现代软件工程讲义 6 用户调研
- 【2017年第1期】基于外卖物流配送大数据的调度系统
- Flutter实现倒计时功能
- JavaScript之节点的创建、替换、删除、插入
- paip.css的覆盖
- stata 亚组分析_手把手教你用R的gemtc包对分类变量进行贝叶斯网状Meta分析
- python实现word批量转pdf
- ocr证件护照识别器,阅读器,扫描仪
- 鸿蒙开发实例|构建轻量级智能穿戴设备用户界面
- python实现GUI设计的方法
- 关于length与length()
- java向微信公众号---发送模板和图文消息
- wagon-maven-plugin插件实现自动化构建部署到服务器
- Windows实用工具推荐
- ue4中隐藏灯光和相机图标_[HDRP]物理灯光是什么?科普向