随笔分类 - 新入门skynet
这是一个skynet的入门教程的文字部分。视频部分放在b站。
https://www.bilibili.com/video/BV19d4y1678X/?spm_id_from=333.337.search-card.all.click&vd_source=77fa0473fb14ca7ff5f1df1bc353cbe9
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 系列博客的大纲 处理请求的基本流程 尾调用 协程调度框架中的三个队列 wakeup_queue error_queue fork_queue 协程调度 db服务处理main服务
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 系列博客的大纲 在工作线程中,服务队列的消息被不断的取出来处理,并处理。 static void * thread_worker(void *p) { struct worke
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet框架实现中用到了协程。特别是lua应用层在消息调度的时候。 基本概念 skynet的协程框架 skynet的协程池具体工作原理 协程 每个lua虚拟机可以有很多个协
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 主动连接之socketChannel 当我们打算主动跟外部通讯时,我们一般使用socketchannel。 socketchannel有两种工作模式。一种是 order ,一种
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 发起主动连接 我们做服务器一般都是接收外部发起的连接。但是有时候也需要主动发起连接请求。这个通过socket.open(addr,port) 我们看代码 function so
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 关闭网络连接。 我们进行网络通讯的时候,两端都有一个socket。每个socket又有读端和写端。 当我们在一端打算关闭一个socket的时候,其实就是想关闭socket对应的
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet对于写网络数据。可以使用 socket.write(id,str)。 -- socket.lua socket.write = assert(driver.send
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 上一节讲了 接受新连接 --某个snlua服务中 socket.start(id) local sz = 996 local str = socket.read(id,sz)
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 上一节讲了 发起网络监听 。现在接着说明 怎么接受新连接的。 这个水龙头里面的水 主要就是业务逻辑需要的网络数据了。注意这是 不同于监听水龙头里面的内容。 我们这里主要是讨论当
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X lua应用层是怎么发起监听的 在具体讨论前,我们简单的讨论一下skynet的网络部分。 skynet网络线程大体上是处理两部分内容。 处理系统的网络事件,比如发现新连接,最终会
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X bootstrap服务的启动 bootstrap实际上也是一个snlua服务。他是我们skynet启动时创建的第二个服务。 void skynet_start(struct s
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet里面提供了定时器。 skynet.timeout 实际上是请求定时器线程 往自己的队列添加一个消息。首先会向系统注册一个定时器,然后获取一个协程。当定时器触发时,通
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 普通字符串 模式字符串 普通字符串 在普通字符串中, 字符 \ 是转移字符。也就是说\有特殊意义。 -- \a 表示响铃 -- \n表示换行 -- \"可以表示双引号 -- \
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet启动时读取配置文件 行11 skynet启动时,我们启动了一个lua虚拟机,这个虚拟机是在整个skynet生命周期中存在的。我们把他叫做skynet的环境虚拟机。
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X # launcher的创建 launcher服务是一个snlua服务。 当调用skynet.newservice请求创建某个服务的时候,实际上会把创建请求发送到launche
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet.newservice创建snlua服务 之前讲 服务间请求和响应的时候,我们在main服务里启动了一个db服务。看代码 --main.lua local skyn
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 服务间请求和响应 这节会主要是介绍在lua服务中使用skynet.call函数 snlua基本启动过程 skynet.pack打包过程 协程基础知识 main发送请求 db处理
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 首先我们总是要写日志的。谁还不喜欢写日志呢。我们经常这样使用 skynet.error("hello world") 上面的代码就是在写日志。默认是写到stdout。当然前
阅读全文
摘要:新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X 视频中的讲解和本系列博客是对应的,但不是完全相同的. 新入门skynet系列博客的大纲 这一节主要是建立大致印象。暂时不要太纠结于细节 问题: 一个skynet进程里面总共有什
阅读全文
摘要:新入门skynet 新入门skynet系列视频b站网址 https://www.bilibili.com/video/BV19d4y1678X skynet基本介绍 skynet是一个历经十年的成熟的国产开源的轻量游戏服务器基础框架。也有做嵌入式,物联网,web等其他行业的人在使用。 有许多使用sk
阅读全文