在onMessage时,根据客户端传的wid连接不同的数据库
$config = ;
global $dbc;//
$dbc = new \Workerman\MySQL\Connection(
$config,
$config,
$config,
$config,
$config,
$config
);我的问题是,当发生onClose事件时,我调用上面的全局变量$dbc,当前$dbc能智能的识别到是属于用户对应的库吗?因为我需要维护多个库里的用户在线状态。
全局变量重复赋值会覆盖,如果onClose之前$dbc被重新赋值过,那么onClose可能不是这个用户之前连接的数据库。
我的想法是onWorkerStart初始化多个global的数据库连接,
$db1 = new(数据库1配置);
$db2 = new(数据库2配置);
. . .
在onMessage里记录下这个用户所用的数据库是哪个,onClose的时候去找对应的$dbx实例操作
我这边业务连接的数据库配置是N个,不确定,所以需要动态,目前感觉是数据库连接变量$dbc
被覆盖,导致状态没有发生变化,在我本机测,倒是正常的,因为也就我一个设备。
我现在弄的就是在onClose重新获取库,或者通过接口请求改变,我选择了前者