随笔分类 - C++
摘要:架构的终极目标是:降本增效 架构的工作内容是:性能和易用性的权衡 假如框架每一个环节的易用性有那么一点微不足道的提升,整体开发效率的提升是这一点的N倍。 // 普通框架的消息handler void on_login(int msg_id, char* buf, int len) { // 在业务线
阅读全文
摘要:关键词:C/C++、模板、template、反射、Lua、API、绑定、自动化、开发、效率、成本 痛点: C/C++没有完美的反射功能(如golang/delphi),对开发 Lua ⟷ C API 来说是比较繁琐和耗工时的,并且人工编码的出错率也非常高。 方案 C++模板编译期自动化推导。 优点
阅读全文
摘要:(一)格式说明 异步微服务框架TCP网络协议格式如图所示: INDEX 序号,1字节,循环计数,起始为0 FLAG 标志位信息,1字节, BIT0:Request消息标志,REQ-ID有效 BIT1:Response消息标志,REQ-ID有效 BIT2:RID接收者ID标志 BIT3~4:保留 BI
阅读全文
摘要:程序异常后是带病继续运行还是结束进程? 从安全的角度来说应该结束进程,那么异常后如何善后? // 此处省略信号监听过程 // ... // 操作系统触发的奔溃异常信号函数, on_sig(sig, is_crash) { // 1、关闭所有定时器 close_timers(); // 2、关闭所有s
阅读全文
摘要:如果所示: 无论客户端还是服务端链接网关的socket都拆分为读EPoll、写EPoll分别独立。 有两个线程:线程A(左)、线程B(右): 线程A负责服务端Socket的读和客户端socket的写,当读到服务端socket发给客户端的数据时根据规则找到对应的客户端的socket并直接写。 线程B负
阅读全文
摘要:上周末和一位策划大佬讨论小游戏,提到新手服数据和本服区分的问题。 在游戏界,跨服数据加载和保存也是一个复杂的业务,常规方法是玩家进入跨服的时候,由本服推送数据到跨服,回来的时候再从跨服带回相关数据。这个方案会随着业务需求变更会带来相当大的开发和维护成本。 我们讨论了数据保存的时候给数据打服务标签的方
阅读全文
摘要:今天较深入学习了skynet游戏框架,提出接口函数改进方法。 游戏当中,基本是对游戏实体操作(全局对象/玩家/怪物/物品/地图等),而在多状态机(线程模式下)对游戏实体的操作更加麻烦。skynet.call和send函数没有直接定位到实体对象身上。本文抛弃了消息概念和Actor概念,提出了四个可以直
阅读全文
摘要:可以在此基础上改进,监听的时候记录监听者所在线程,触发的时候把数据传递给监听者线程由监听者线程执行动作函数,这样就可以实现监听者线程内无锁执行。 AI提示词 using eca_cond = bool(*)(...); using eca_action = void(*)(...); class e
阅读全文

浙公网安备 33010602011771号