GatewayWorker 是 Workerman 的一个框架,对应用层开发者更友好。
GatewayWorker 多了一个网关,也就是 Gateway,负责与客户端连接,消息转发等。
而自定义的协议,也就是 gateway 面向客户端提供服务的协议,下面就简单收一下 GatewayWorker 启动后连接的过程吧。
现在新版的 TP 框架已经很好的集成了 GatewayWorker,不再像以前要改动入口文件。composer require topthink/think-worker 就可以安装,里面分别时 think-worker,gateway-worker 和 workerman 三个包。而为了不破环 vendor 包,自定义的协议最好写在 TP 框架的应用层。
app 目录下创建一个 library (目录自行控制),再见一下 Game.php (举个例子,协议名看自己)。
Game.php 需要实现 Workerman 的 ProtocolInterface,且要完成 input,decode,encode 三个方法,之前有介绍,这里就略过。
打开 config 的 gateway_worker.php,以下先不做处理的写好 game 协议。
直接 php think worker:gateway start 运行,则直接报错。
因为 gateway 外部协议需要 Workerman\Protocols 的命令空间,所以只需要给自定义的协议类起一个别名。
arduino 代码解读复制代码class_alias('app\library\Game', 'Protocols\Game');
运行一下并做了测试,这样就完成了。