物联网即时通信架构实现与实战
物联网即时通信架构实现与实战介绍
Socket基础网络通信
Socket网络通信进阶
- 网络框架搭建
- Accept封装
- IOselect复用函数
- 数据收发
- 多客户端连接
- IO复用select函数工作原理
- 连接socket封装到TcpConnection类
- 注册onClose事件回调函数
- onClientLeave客户端断开
- TCP粘包
- Client客户端
- Stream字节流协议实现1
- pack和unpack详解1
- pack和unpack之字节序
- pack和unpack3字节存取
- pack和unpack4字节存取
- pack和unpack5字节存取
- Stream字节流协议实现2
- pack打包的二进制数据在内存中长啥样
- Stream字节流协议实现3
- 添加send函数
- 解决多客户端连接数据收发bug
- 同时兼容TCP字节流低层协议和Stream应用层协议
- 客户端连接数fread和消息数统计
- 多Client客户端测试
- 多进程多客户端连接测试
- 多客户端端连接bug解决
- linux上测试多客户端连接
- select1024如何突破
- php selec fdsize1024重新编译
- Client 发送与接收进程send和writefds调整
- linux和windows数据收发测试
- 完善服务端和客户端select读写事件数据收发
- Client数据发送统计
- Linux上client数据发送与统计
- 心跳实现
- socket isConnected和win2048连接测试
- Linux和win下修改php内存限制进行连接测试
- Text协议实现
- Linux阻塞与非阻塞IO系统调用查看
- 非阻塞与读写缓冲区设置
- win客户端socket连接Linux服务端socket测试
- libevent框架库介绍与安装
- event扩展安装与基础测试
- event基础类之定时器使用
- epoll类封装IO事件
- epoll类之监听socket使用
- epoll类连接soket添加读写事件
- epoll类连接socket数据收发
- epoll之连接socket读写事件排查与纠正
- epoll之连接socket断开移除读写事件
- selectIO复用函数封装事件
- client客户端使用select与win测试
- win1k客户端连接数据收发测试与bug解决
- Linux系统上5k客户端连接测试select
- win系统c10k测试与平台兼容
- linux epoll测试与epoll类添加定时事件
- epoll类定时器调用
- select定时事件封装和添加
- select定时器调用测试
- win上测试select
- linux epoll c10k测试
- win和linux之select和epoll数据收发测试
- 服务器多进程forkWorker
- server端多进程实现与主进程回收
- init初始化及保存主进程pid和引入命令行参数
- 服务端start命令完善
- select与epoll中断信号事件完善与编写主进程中断处理
- 主进程与子进程sigHandler
- 进一步完善服务stop命令
- stop命令及子进程退出清理测试
- linux上测试进程退出与小bug修复
- linux上测试stop的select的IO与定时和信号事件
- 子进程退出select的清理bug修复
- 子进程异常或不正常退出时重启新进程
- 注册主进程与子进程的启动与停止回调事件
- 注册子进程重启事件回调
- 各个子进程统计自己的连接数以及消息数量
- socket惊群演示及解决方案
- socket惊群解决
- task任务进程实现
- task进程unix socket
- task进程注册ontask事件和添加UdpConnecti
- ontask事件回调
- 多task进程任务投递测试
- task异步任务投递匿名函数
- task异步任务投递进一步完善
- win和linux兼容处理
- 禁用Nagle算法优化数据发送
- 服务启用守护进程和日志打印
- linux测试守护进程和日志
- linux测试守护进程和日志2
- 终端显示服务启动信息
- libevent网络框架库分析介绍
- libevent网络库概念和相关技术点解释
- libevent示例源码说明和event目录简单解释
- eventBase类构造函数内部源码分析
- libevent的初始化event_base数据结构说明1
- libevent的初始化event_base数据结构说明2
- libevent初始化event_base数据结构说明3
- event_base的event_assign分析
- eventBase构造函数内部源码分析5
- libevent网络之Event类构造函数内部源码实现1
- event类构造函数内部源码实现分析2
- Event类add方法内部实现源码分3
- Event类add方法源码内部实现分析4
- libevent网络库之Event类add方法源码实现分析5
- libevent网络库之Event类add方法源码实现分析6
- Event类add中断信号事件添加内部源码分析1
- Event类add信号事件添加源码分2
- IO事件信号事件和定时事件添加到事件队列中源码分析
- 事件对象移除源码event_del分析1
- libevent网络库IO事件信号事件定时事件移除分析2
- eventBase的loop事件循环源码分析
- eventBase类事件循环loop源码分析2
- eventBase事件循环loop源码分析3
- libevent网络库之eventBase事件循环完结
Http协议实现
- Http协议实现基础介绍
- Http协议实现补充介绍与telnet测试http连接百度
- http请求报文在内存的样子
- http请求报文长度解析Len
- http请求报文之请求行和请求首部解析
- 请求报文查询字符串解析与请求体Content_type分类
- http请求报文内容解析之获取contentType
- http请求报文之form-data表单数据结构
- http请求报文www-form-urlencode解析
- 请求报文之w-form-urlencoded解析与请求类和响
- http请求报文之form-data数据解析
- http请求报文之form-data表单解析及多文件上传解析
- http请求报文之application-json解析
- http请求报文这application-json解析和option跨域
- http响应报文封装
- http响应报文测试
- http响应报文之文件响应
- http响应报文之内容编码
- http响应报文之传输编码
- 响应html-js-css等静态文件
- 加上自己app应用目录简易实现控制器调度
- linux测试http应用
- 控制器调度和响应
- win上测试html表单提交数据
- 阿里云服务器linux http协议并发测试
- 阿里云服务器Linux http协议c10并发测试
Websocket协议实现
- websocket协议概述
- websocket协议握手实现之http请求报文解析
- websocket协议握手实现之http响应
- websocket协议握手实现之http响应2
- websocket协议握手实现之http响应及bug修复
- websocket协议之ascii字符与进制间转换及位移运算
- websocket协议之数据帧解析1
- websocket协议之数据帧解析2
- websocket协议之数据帧解析3并回调message事件
- websocket协议之数据收发测试
- websocket协议之数据收发测试
- weboskcet协议之客户端关闭
- websocket服务和http服务同时启用
- ws连接bug修复1
- ws连接bug修复与http转发消息给websocket客户
- tcp客户端和http客户端数据转发给websocket客户
- ws客户端协议实现1
- ws客户端协议实现2
- ws客户端协议实现3握手数据发送及验证
- ws客户端数据帧解析和回调message事件
- ws客户端数据帧封装并发送数据给服务器端及数据帧收发测试
- linux上多进程多协议测试websocket数据收发
- websocket ping和pong数据帧
- websocket ping和pong心跳数据帧测试
- 统计bug修复与websocket协议类bug修复
- linux测试websocket协议数据收发
物联网MQTT协议实现
- 物联网MQTT协议概述
- MQTT控制报文格式介绍
- MQTT控制报文剩余长度编码及解码算法解释1
- MQTT控制报文剩余长度编码及解码算法解释2
- MQTT控制报文可变头部和数据载荷解释说明
- mosqutto体验MQTT使用
- CONNECT控制报文结构说明及用C++看报文在内存中的结构
- 用mqtt客户发送CONNECT控制报文并查看在内存中的布局
- CONNECT控制报文解析1
- CONNECT控制报文解析2之获取报文类型及报文剩余长度
- CONNECT控制报文解析之剩余长度解码1
- CONNECT控制报文解析之协议名获取
- CONNECT控制报文解析之协议版本
- CONNECT控制报文解析之连接标志及保持KEEPALIVE
- CONNECT控制报文解析之数据载荷解析1
- CONNECT控制报文数据载荷解析2及回调事件open
- CONNECT控制报文数据解析及CONNACK报文封装响应
- 心跳报文解析及心跳报文封装响应
- SUBSCRIE订阅报文解析1
- SUBSCRIBE订阅报文解析2
- SUBSCRIBE订阅报文解析3及添加订阅事件回调函数
- SUBSCRIBE订阅报文解析4调整及SUBACK报文封装响
- 订阅报文解析5及SUBACK响应和取消订阅报文解析
- UNSUBSCRIBE取消订阅报文解析及取消订阅确认响应
- 取消订阅报文吸响应UNSUBACK报文响应2
- PUBLISH报文解析1
- PUBLISH报文解析2及publish事件回调函数
- 发布报文解析及QOS等级0的PUBLISH报文封装消息转发1
- PUBLISH报文转发给其它客户端1
- PUBLISH报文之剩余长度编码算法封装
- PUBLISH报文转发测试
- QOS等级1的PUBACK报文封装响应
- QOS等级2的报文封装响应1
- QOS等级2报报文封装响应2
- QOS等级2报文收发响应测试
- 剩余长度编码与解码算法测试验证
- DISCONNECT报文解析及测试和mqttClient类实
- MQTT客户端实现之封装CONNECT报文
- 客户端实现CONNECT报文发送和CONNACK响应事件回调
- MQTT客户端实现之PUBLISH报文封装
- MQTT客户端实现之SUBSCRIBE控制报文封装及发送
- MQTT客户端实现之UNSUBSCRIBE控制报文封装
- 客户端实现之PUBLISH报文解析及调用sub事件回调函数
- MQTT客户端及MQTT服务器在linux服务器上测试数据收
- 客户端作为发布者服务质量等级为1的PUBACK报文接收
- mq客户端作为订阅者服务质量等级为1的PUBACK报文发送
- MQTT客户端作为订阅者及发布者服务质量等级为2的数据收发
- MQTT客户端发送心跳及心跳响应
- MQTT文档资料及总结
物联网项目综合实战
- 物联网项目硬件平台介绍
- ESP开发板环境安装说明及第一个LED实验说明
- ESP芯片之GPIO端口控制LED发光二极管实验
- ESP芯片之GPIO端口驱动外接LED设备实验
- ESP按键及LED驱动联合测试实验
- ESP芯片之RTOS定时器使用实验
- ESP驱动外设IC与OLED显示屏实验
- ESP驱动湿度传感器并显示在OLED显示屏上
- ESP驱动湿温度传感器实验
- ESP wifi连接与socket api测试连接php服务
- ESP 芯片socket api连接服务器并回显数据在显示屏
- ESP芯片作为MQ客户端连接php MQTT服务并转发数据
- ESP芯片作为MQ客户端连接php MQTT服务并作为订阅者
- 构建web端物联网页面连接websocket服务器
- web控制页面websocket请求业务处理1
- web控制页面websocket请求业务处理2
- 传感器设备通过MQTT客户端定时上传数据到WEB端
- websocket发送OLED和ADC请求到数据ESP芯片
- websocket发送数据给OLED显示屏显示
- websocket发送数据到OLED显示屏bug修复
- 芯片接收WEB端的指令数据并驱动GPIO硬件端口控制LED
- 通过HTTP 调用web api接口发送指令给芯片驱动IO
- 通过个人微信号控制芯片上的GPIO硬件端口驱动LED设备
- 项目简单总结和提供github本地库源码下载
分布式集群与补充
提交答案
视频学习中有任何产品建议都可由此反
馈,我们将及时处理!
馈,我们将及时处理!
课时介绍
event类构造函数内部源码实现分析2
课程介绍
课程是老师的第二套课程,将在项目中积累的一线多年技术经验从0开始源码级别实现
一个物联网通信引擎,并在传输层TCP,UDP协议基础上实现了TEXT,STREAM,WEBSOCKET
物联网通信MQTT协议,并把实现的协议应用在物联网芯片实现web网页端,mqtt客户端
以及个人微信端wechat APP的数据指令交互控制硬件设备,大家会从0开始掌握tcp,udp,stream,text,http,
websocket,mqtt物联网协议实现的同时,还能更清楚的知道其实现过程,并将这些协议综合的
应用到现实生活中即物联网设备的交互控制,本课程并没有去套用别人实现好的轮子,而是让各位
真正的掌握核心技术,助你在技术上实现质的提升,并不是PPT扯物联网概念,全是真抢的一行行
代码打出来。
同时对于深度理解workerman/swoole/libevent/socket编程等也有极大益处。
在此不再过多陈述,更多详情敬请观看视频!
备注:项目部分基础知识依赖于老师的第一套课程
推荐课程
