## 如何定制协议
实际上制定自己的协议是比较简单的事情。简单的协议一般包含两部分:
* 区分数据边界的标识
* 数据格式定义
## 一个例子
### 协议定义
这里假设区分数据边界的标识为换行符"\n"(注意请求数据本身内部不能包含换行符),数据格式为### workerman与协议类交互流程
1、假设客户端发送一个数据包给服务端,服务端收到数据(可能是部分数据)后会立刻调用协议的```input```方法,用来检测这包的长度,```input```2、workerman框架得到这个```$length```值后判断当前数据缓冲区中是否已经接收到```$length```长度的数据,如果没有就会继续等待数据,直到缓冲区中的数据长度不小于```$length3、解包后workerman将数据```$data```以回调```onMessage($connection, $data)```的形式传递给业务,业务在onMessage里就可以使用```$data