2022年4月9日记:Linux服务器开发,Mark,skynet重要组件以及手撕游戏项目
skynet重要组件以及手撕游戏项目前言消息与事件关系?消息与actor如何绑定?具体的绑定接口流程是什么?消息与协程的关系本日小记栈空间对象模型深入探索总结前言写博客是一个很好的学习习惯,不管今天真的有没有学到知识,坐在电脑前絮絮叨叨记录写下今天所学的知识,哪怕一丁点生活感悟,心情也会变得非常开心。好的,开始今天的学习。本节课的主要目标就是掌握框架的开发思路。消息与事件关系?typedef un
────────────────────────────────────
┌————————————┐
│▉▉♥♥♥♥♥♥♥♥ 99% │ ♥❤ 鱼沈雁杳天涯路,始信人间别离苦。
└————————————┘
对你的感情正在充电中,请稍侯…
────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
https://ke.qq.com/course/417774?flowToken=1042807
────────────────────────────────────
前言
写博客是一个很好的学习习惯,不管今天真的有没有学到知识,坐在电脑前絮絮叨叨记录写下今天所学的知识,哪怕一丁点生活感悟,心情也会变得非常开心。
好的,开始今天的学习。
本节课的主要目标就是掌握框架的开发思路。
消息与事件关系?
typedef union epoll_data
{
void * ptr; //skynet使用的方式
int fd; //redis使用的方式
uint32_t u32;
uint64_t u46;
}epoll_data_t;
指向一个socket关联对象,id是标记着socket的标识。
sp_add,sp_del,sp_enable是对epoll_ctl事件控制的封装。
学到这里我似乎长大了,认识到了计算机世界的奇妙,曾经的年少无知都仿佛发生在刚刚。
消息与actor如何绑定?具体的绑定接口流程是什么?
感觉就像是一堆缜密的结构体用指针指来指去,却从未指出回家的方向。
线程与线程通信,不加锁有没有更好的方式?
管道你值得拥有!少量数据,不要一次发太多的数据。
当事件触发,做相对应的IO操作,把处理的事件包装成消息推送到相对应的actor消息队列。
消息与协程的关系
确定读事件时候,先把数据读出来。问题是如何把事件转为消息?
读事件被触发,从网络事件中读取数据包装成消息,然后推到消息队列当中去。
同学展示才艺阶段
在reactor网络编程中,对于客户端来说什么表示网络建立成功?
- connect非阻塞
- fd可写
但是对于服务器来说,又是怎么样的? - listenfd交由epoll进行管理
- fd可读
这个问题当时只有 @麻利小超人 回答正确了,得到了Mark老师的青睐,估计他内心一定回很骄傲。但是从内容本质上来看这并不是一道很难的问题,我也同样能回答出来,只是当时已经在摸鱼ING了。
- yield 主动让出协程
- resume 唤醒协程
我们的lua协程是通过手动的方式,和King老师讲的不一样,没有借助任何中间件,走的的是自强的道路。
条件满足进行唤醒,条件不满足就要让出。
栈空间
虚表指针
总结
通过今天的学习mark老师的skynet组件,并且真正的参与到了游戏环节,感觉真正的学习到了skynet。直播时,没有回答出老师提的问题有些遗憾,心有不甘,但是现在感觉也能铺着胸脯说掌握了三分了。
学了2遍也只能掌握到现在这个程度了,好了,废话就不多说了。
不管经历什么。努力成为最好的自己。
更多推荐
所有评论(0)