2016年9月3日
摘要: 基于云风的 blog,收集 skynet 的特性以便将来在代码中一一验证。 “ ... ” 部分节选自云风的 BLOG。 1. 基于 Erlang-Actor 模式的 C 实现 “把一个符合规范的 C 模块,从动态库(so 文件)中启动起来,绑定一个永不重复(即使模块退出)的数字 id 做为其 ha 阅读全文
posted @ 2016-09-03 14:35 青墨淡潋 阅读(527) 评论(0) 推荐(0)
  2016年9月2日
摘要: 现在需要做一个有聊天室集群,单个聊天室支撑同时在线 600-800 人的需求,选择一个什么样容易上手的方案比较好。 业务需求: 其他出发点: 单服聊天的需求比公会聊天的需求来得大的多,以满足单服聊天的承载为第一优先级; 考虑到服务器成本问题,尽量选择 Linux 服务器; 有现成的框架、工具与文档可 阅读全文
posted @ 2016-09-02 22:30 青墨淡潋 阅读(648) 评论(0) 推荐(0)
  2016年9月1日
摘要: Scut 在启动时有一个自动根据代码中数据类型检查数据库字段的功能,要如何使用呢? 脚本引擎动态加载 ModelAssembly: ScriptEngine.cs - InitScriptRuntimeScope: EntitySchemaSet.cs - LoadAssembly: 可以得知,需要 阅读全文
posted @ 2016-09-01 13:49 青墨淡潋 阅读(266) 评论(0) 推荐(0)
摘要: Attribute 是C#非常重要的一块内容,需要研究一下。 Attribute 的简单使用:简而言之,就是可以自定义通用标志位,而不是在每个所需的类型中分别增加标志位。 看来马上要学习一下 C# 的反射原理了。 阅读全文
posted @ 2016-09-01 11:02 青墨淡潋 阅读(248) 评论(0) 推荐(0)
  2016年8月31日
摘要: EntityChangeEvent 最重要的两个变量:ItemEvent、ChildrenEvent。 ItemEvent 的功能流转: 从整个跳转图可以看出,这个功能的作用是 -- 自动将数据修改保存至redis。 1. 首先要逐层地“AddChildrenListener”,将上层的 Notif 阅读全文
posted @ 2016-08-31 16:14 青墨淡潋 阅读(285) 评论(0) 推荐(0)
  2016年8月26日
摘要: 处理消息流程: 关于是否能用 json 串作为 response? 在最后写消息的时候要加上控制选项,将Response类型,事直接以字节流,还是转json串再转字节流的方式进行编码了,如果要转json,还要进行反射来获取类型名。 还有一个疑问:HttpAsyncHandler 的 Excute,为 阅读全文
posted @ 2016-08-26 15:23 青墨淡潋 阅读(254) 评论(0) 推荐(1)
  2016年8月24日
摘要: Task 是 .Net4.0 新出的异步调用方法,粗略看了一下基本对外屏蔽了线程的概念,写异步调用更专注于应用本身。 执行结果: 可以看到: 1. 每种执行异步方法的任务ID都是不同的; 2. task1 与 task 在同一个线程上执行,意味着任务数与线程数并不一一对应,应该是有一个线程池在支持; 阅读全文
posted @ 2016-08-24 20:24 青墨淡潋 阅读(490) 评论(0) 推荐(0)
摘要: 关键字: virtual: 虚方法,本身可以被实例化,也可以在派生类中重写该方法; override:在派生类重写基类虚方法时声明,避免了C++中的潜在运行错误; abstract:声明为抽象类、抽象方法,不能实例化; sealed: 不可被继承类、不能被重写方法; param: 表示函数参数为一维 阅读全文
posted @ 2016-08-24 11:47 青墨淡潋 阅读(262) 评论(0) 推荐(0)
  2016年8月22日
摘要: 在大致过了一遍Scut的底层结构(其实只是对各个组件有了一个初步印象而已),现在开始尝试搭建“口袋天界”的Scut服务端。 1. 设置外部启动项 项目属性 -- 调试 -- 启动外部程序 -- 项目根目录下的 GameServer.exe; 2. 正常安装环境后启动server,Db无法连接 通过官 阅读全文
posted @ 2016-08-22 19:54 青墨淡潋 阅读(416) 评论(0) 推荐(0)
  2016年8月21日
摘要: Scut 的缓存管理看起来还是蛮复杂的。 redis 本身就有内存缓存+持久化的作用,Scut还是自己封装了一层内存缓存+Redis缓存+持久化。 。 这是一个缩略版本的结构图。 1. 上半部分是通用的缓存池结构,用来存放各类缓存数据。 第一层Dictionary是按大类区分:Entity_{0}、 阅读全文
posted @ 2016-08-21 21:26 青墨淡潋 阅读(631) 评论(1) 推荐(0)