huahua132 blog
  • 首页
  • 归档
  • 分类
  • 标签

服务录像与重放

前言对于复杂的业务逻辑,出现的bug,通过日志手段或者review代码都没法查明原因的情况下,这时候我们可以通过服务录像重放来还原整个事故现场。 实现方案skynet是多线程的,不太方便对整个进程进行录像,而对于skynet的单个服务,能保证消息是同步处理的,所以可以比较方便实现对于单个服务录像,可以同时录制多个服务。实现思路就是把所有消息记录下来,重放时读取记录,解析重放即可。其中有一些细节点,
2024-10-27
skynet_fly 文档 > 强化篇
#skynet_fly_word

代码加密

前言很多群友都有加密代码的需求。为了群友辛辛苦苦写的游戏不被人轻易白嫖,这必须得安排上。 实现方案lua加载代码通常都是用loadfile跟require,所以我们可以先把lua文件通过string.dump打成二进制格式,再通过加密算法加密,之后直接使用加密的文件去运行,通过重写loadfile的底层函数,内置解密过程,即可实现代码加密的效果。 如何使用修改解密key修改skynet_fly\s
2024-10-14
skynet_fly 文档 > 强化篇
#skynet_fly_word

sharedata.lua 共享配置数据

sharedata.lua加载配置 M.load(dir_list, mode) 函数作用域:M 对象的成员函数 描述: 以mode方式加载指定dir_list目录列表的lua配置文件 参数: - dir_list (table): 路径列表 - mode (number): 模式 访问对象 M:new(file_path, mode) 函数作用域:M 对象的成员函数 描述:
2024-09-14
skynet_fly_api
#skynet_fly_api

共享配置数据

前言由于skynet每个服务都是独立的lua虚拟机,一般游戏开发又需要加载大量的配置文件,如果每个服务都加载一遍,会造成过多的内存浪费,所有skynet就提供了sharedata,sharetable共享配置数据的手段。由于两种方案各有优缺点,所以我在封装实现上让使用者可以任选其一,在make/script增加热更配置命令,方便于热更配置。 优缺点对比sharedata 优点 c内存占
2024-09-14
skynet_fly 文档 > 强化篇
#skynet_fly_word

常见问题收录

问题11234root@VirtualBox:/skynet_fly/test# sh ../binshell/make_server.sh ../: not found/make_server.sh: 3:: not found/make_server.sh: 5:../binshell/make_server.sh: 24: Syntax error: end of file unexpect
2024-08-17
skynet_fly 文档 > 入门篇
#skynet_fly_word

断点调式的支持

前言很多群友都问怎样调试skynet_fly,于是就有了对单点调式的支持,调式对于老手来说并不是那么的必要,对于新手来说确实有助于编码学习,毕竟刚学编程那会儿也比较依赖调试,后面逐渐习惯用打印日志的方式查找问题。 实现方案在vscode有部分插件说支持了对skynet的调试,我跟着他们的步骤进行操作,都没能成功调试。之后尝试能不能用lua helper插件支持的调式功能。研究之后发现lua hel
2024-08-03
skynet_fly 文档 > 强化篇
#skynet_fly_word

可热更服务,热更脚本支持

前言对于有状态的服务,利用新服务替换旧服务的方式,旧服务我们一直会维持到没有状态存在为止,当有简单逻辑bug的时候,旧服务没法立即更新,没法完美的解决问题,这时候可能就需要用到热更脚本来解决突发的一些简单逻辑bug。 限制热更脚本对比滚服更新的最大区别就是: 热更脚本是在旧的lua服务中完成 滚服更新启动新lua服务,流量切入新的lua服务 使用滚服更新的好处是,我们不需要考虑热更后对于服
2024-07-27
skynet_fly 文档 > 强化篇
#skynet_fly_word

远程订阅发布模式

watch_server.luasever M.publish(channel_name, …) 描述: 发布名为channel_name的事件 参数: - channel_name (string): 事件名 M.pubsyn(channel_name, …) 描述: 发布名为channel_name的同步事件 参数: - channel_name (string): 事件名
2024-06-29
skynet_fly_api
#skynet_fly_api

日志轮换

logrotate function M:new(filename)描述 新建对象参数 filename string? 文件名 返回值 table 对象 function M:set_rename_format(rename_format)描述 重命名文件格式参数 rename_format string 返回值 table 对象 function M:set_file_path
2024-06-29
skynet_fly API 文档 > 日志相关
#skynet_fly_api

mod映射队列

mod_queue function M:new(cap)描述 新建队列对象参数 cap number 容量 返回值 table function M:exec(mod_num, func, …)描述 执行函数参数 mod_num number mod_num % cap + 1 决定使用队列 func function 执行函数 … any 函数参数 返回值 … 函数返回值
2024-06-29
skynet_fly API 文档 > 执行队列
#skynet_fly_api
12345…15

搜索

Hexo Fluid
总访问量 次 总访客数 人