EasySwoole RPC服务
EasySwoole支持RPC服务。
具体配置可参考官方文档。
这里说一下自己在配置中的心得。
官方文档中是将Server端和Client端放在同一个服务器上,而实际情况下它俩是分开的。
Home of Little Jelly
EasySwoole支持RPC服务。
具体配置可参考官方文档。
这里说一下自己在配置中的心得。
官方文档中是将Server端和Client端放在同一个服务器上,而实际情况下它俩是分开的。
EasySwoole Pool连接池可用于Redis、MySQL等数据库连接。
SwooleMySQL是我在Swoole官方MySQL类的基础上封装的一个类,可以实现类似ThinkPHP里db()函数和模型的链式操作,现我要为他创建一个连接池。
1. 首先安装composer依赖
EasySwoole进程偶尔会出现挂掉的情况,可做一个定时任务脚本来守护它,检测到进程挂掉时自动拉起。
脚本命名为 `es.bash`,内容:
EasySwoole下日志处理有多种方式。
典型的是官方推荐的处理方式,自定义一个日志处理类实现`EasySwoole\Log\LoggerInterface`接口,并在`EasySwooleEvent.php`中的`initialize`方法中,设置由该类来接管日志,则运行中的所有日志都由该类来处理了。
EasySwoole的进阶用法中有Timer、Task、Crontab、Process。
Timer
也就是定时器,在`EasySwooleEvent.php`中的`mainServerCreate`中注册
测试背景:基础框架下的用户登录和用户信息获取,登录时Token写入Redis,获取用户信息时先从Redis中获取到相应的用户ID,再从MySQL中读取用户信息。
线上服务器采用的是阿里云的ECS,数据库与程序共用一台服务器。
EasySwoole开发测试心得。
1. MySQL类可在Swoole原生的`Swoole\Coroutine\MySQL`上扩展,速度快且使用方便。EasySwoole提供的MySQL操作类不好用且有点慢。
在EasySwoole框架下如何使用自定义公共函数?
官方文档没有涉及,其实这是composer的问题,不是EasySwoole的问题。
接下来介绍下步骤。
EasySwoole的WebSocket服务默认没有异常处理,所以如果请求的class或action不存在,则服务端直接断开连接。这当然是不能接受的。
EasySwoole的WebSocket异常不同于HTTP异常,所以在`EasySwooleEvent`中的`initialize`方法中添加类似如下代码是不管用的:
EasySwoole Socket服务无法启动,报错
fail at class EasySwoole\Task\Worker at file