项目的socket短连接服务, 采用的是MVC模式, 玩家的某个功能对应的就是一个Model, 每个Model之间数据是独立的, 当然这些Model是继承于一个父类.
对数据的操作都是在实现的Model里进行, 对数据的保存操作(save)我们都建议是在Controller里进行的, 这么做的好处是显而易见的, 玩家各个功能之间数据安全性得以保证, 同时也保证在某个功能产生bug的时候, 各数据之间互相不污染.
比如一个连接进来了, 可能会涉及多项Model的数据更改和保存. 在Controller里, 可能会有多行对应各功能Model的 obj.save()操作:
继续阅读 »
网关编码一
拆了又补, 补了又拆,边拆边想,发现之前用asio socket的方式做gateway, 有不少问题。
1. 如果用asio做连接upstream server的socket, 还需要把byte buffer实现一遍,
虽然已有现成的buffer代码, 不过生搬过去还是显的略繁琐;
2. 如果用asio, 下游用的是epoll, 要在asio的async_read_some, 和epoll的 OnRead, OnWrite间穿梭,
感觉好脑残,之前的想法果然傻逼, 当然推翻它重来了;
3. 改成都用epoll监听, 方便很多。基本上就是设计一个新类 ProxySClientSocket 继承SClie
继续阅读 »
网络层
一个思维导图
基本模块有:
SocketBase 抽象基类, 定义所有会共性的方法, 基本都是Epoll在回调,比如OnRead, OnWrite分别处理epoll的读写事件, ListenSocket也是继承这个基类.
m_fd 保存socket的fd属性
m_readBuffer 和 m_writeBuffer 分别是一个读写的buffer, 类型就是Buffer类
继续阅读 »
Java部分(基础)
基础部分1 https://www.imooc.com/learn/85
1. 基本的语句(if else这些)
2. 数组,函数
基础部分2 https://www.imooc.com/learn/124
1. 类和对象(构造函数、静态变量、静态方法)
2. 继承(方法重写、抽象类)
3. 接口
基础部分3
1. 集合,泛型,Map,迭代器(Iterator)
2. 常用的工具类(String、File、Date、Calendar、)
3. 异常处理(try……catch)
4. 输入输出流(可以后面在Android需要时学习)
5. 多线程(可以后面在Android需要时学习)
Android(基础
继续阅读 »
Glad you back @Drake
React.Component or React.createClass
刚刚学习 React 的时候,有很多教程创建一个 React 组件的时候,都是使用 React.createClass,那是 ES6 还没有广泛使用的时候的语法,后来在 React v0.13 的时候,就可以使用 ES6 的 class 来创建 React 组件,也就是继承 React.Component。
继续阅读 »