2016年8月19日
摘要:
核心文件是:RedisConnectionPool.cs 对象池类的通用泛型封装:ObjectPoolWithExpire<T> 1. 主要变量 2. 初始化 3. RedisClient 获取、读、写操作 句柄获取: 读取: 先来看下应用层是如何加载数据的: 写入: 这里只看一个最常用的事务写入,
阅读全文
posted @ 2016-08-19 18:30
青墨淡潋
阅读(577)
推荐(0)
2016年8月17日
摘要:
1. 程序集 程序集是自我描述的安装单位。 程序集清单:描述了程序集和引用它所需要的所有信息。 查看程序集:ildasm 工具 程序集特性:VS会生成 AssemblyInfo.cs 文件,描述程序集特性,用于配置程序集清单。 用“C#高级编程”的例子来学习创建与动态加载程序集: 值得注意的是:只要
阅读全文
posted @ 2016-08-17 17:40
青墨淡潋
阅读(260)
推荐(0)
2016年8月16日
摘要:
Scut 可以执行 C#、Python、Lua 三种类型的脚步,Scut 是如何加载并传递参数的呢? 首先值得注意的是:Scut 在编译时就会将逻辑层脚本源码复制到bin/Script的目录下。 1. ScriptRuntimeDomain、ScriptRuntimeScope、ScriptDoma
阅读全文
posted @ 2016-08-16 22:32
青墨淡潋
阅读(1241)
推荐(0)
摘要:
想使用 Scut 做的是一个短连接项目,所以先直接看 GameWebSocketHost 了。 先来看下 GameWebSocketHost 的成员: 由之前的分析可知:SocketListener 搞定了监听、底层IO,那么ActionDispatcher 应该负责上层消息的分发了。 构造函数做了
阅读全文
posted @ 2016-08-16 12:09
青墨淡潋
阅读(932)
推荐(0)
2016年8月14日
摘要:
大致浏览了一遍,Scut 的网络模型采用的是 SAEA 模型, 它是 .NET Framework 3.5 开始支持的一种支持高性能 Socket 通信的实现。 通过分析 Scut 的套接字监听控制,就能大致明白它是如何使用 SAEA 架构的。 1. 套接字缓冲区内存管理器 先来看下 Scut 对套
阅读全文
posted @ 2016-08-14 20:25
青墨淡潋
阅读(1868)
推荐(0)
2016年8月13日
摘要:
看第一个解析API: 再看如何分隔数据包: 看 Scut 的官方文档,对此也说的很清楚:第一部分是字符串的格式流(命名为Get Params),第二部分是扩展数据流(可选),支持上传些文件流或图片流等,与第一部分之间需要以两个换行(\r\n\r\n)符分隔。 重点则是对第一部分的格式分析: 总结:
阅读全文
posted @ 2016-08-13 20:33
青墨淡潋
阅读(391)
推荐(0)
摘要:
先上一段代码: 可以看到,配置都是通过 GetServerSection、GetProtocolSection 等API导入的。 再来看一下 GetServerSction 的具体操作: ConfigUtils 是控制 app.config 配置的。那么,我们可以很清楚地明白,Scut 的配置,如果
阅读全文
posted @ 2016-08-13 16:55
青墨淡潋
阅读(449)
推荐(0)
2016年8月10日
摘要:
1. 配置节 ConfigSection 可知,使用一个 key-value 型的链表结构来管理 基础配置。 ConSection 里包含了对链表的操作: 连接配置节:最重要的是增加了对“目标连接”的管理。 2. 配置的抽象 数据配置:首先数据配置域管理了配置节的集合。 下面来看更重要的几个变量与功
阅读全文
posted @ 2016-08-10 22:44
青墨淡潋
阅读(392)
推荐(0)
摘要:
先插入一段代码,这个例子的 Action<string> 表示只有一个 string 参数,如果有一组的参数的话,代码写起来会比较难看。 .Net 给我们提供了基于 EventArgs 来进行传参 的 自定义事件 EventHandler。 可以 EventHandler 理解为“发布者提供的订阅器
阅读全文
posted @ 2016-08-10 11:37
青墨淡潋
阅读(294)
推荐(0)
摘要:
事件基于多播委托的特性。 多播委托事实上就是一组类型安全的函数指针管理器,调用则执行顺序跳转到数组里所有的函数指针里执行。 基于该例,我们用“多播委托”的概念来重写: 我只想知道,在多播委托的基础上,事件有哪些自身的特性?从以上两个例子中似乎看不出来。 继续来看下一个例子: 1. 我们在委托之前加上
阅读全文
posted @ 2016-08-10 10:51
青墨淡潋
阅读(306)
推荐(0)