在onMessage時(shí),根據(jù)客戶端傳的wid連接不同的數(shù)據(jù)庫(kù)
$config = ;
global $dbc;//
$dbc = new \Workerman\MySQL\Connection(
$config,
$config,
$config,
$config,
$config,
$config
);我的問題是,當(dāng)發(fā)生onClose事件時(shí),我調(diào)用上面的全局變量$dbc,當(dāng)前$dbc能智能的識(shí)別到是屬于用戶對(duì)應(yīng)的庫(kù)嗎?因?yàn)槲倚枰S護(hù)多個(gè)庫(kù)里的用戶在線狀態(tài)。
全局變量重復(fù)賦值會(huì)覆蓋,如果onClose之前$dbc被重新賦值過,那么onClose可能不是這個(gè)用戶之前連接的數(shù)據(jù)庫(kù)。?
?
我的想法是onWorkerStart初始化多個(gè)global的數(shù)據(jù)庫(kù)連接,
$db1 = new(數(shù)據(jù)庫(kù)1配置);
$db2 = new(數(shù)據(jù)庫(kù)2配置);
. . .
在onMessage里記錄下這個(gè)用戶所用的數(shù)據(jù)庫(kù)是哪個(gè),onClose的時(shí)候去找對(duì)應(yīng)的$dbx實(shí)例操作
?
我這邊業(yè)務(wù)連接的數(shù)據(jù)庫(kù)配置是N個(gè),不確定,所以需要?jiǎng)討B(tài),目前感覺是數(shù)據(jù)庫(kù)連接變量$dbc
被覆蓋,導(dǎo)致狀態(tài)沒有發(fā)生變化,在我本機(jī)測(cè),倒是正常的,因?yàn)橐簿臀乙粋€(gè)設(shè)備。
我現(xiàn)在弄的就是在onClose重新獲取庫(kù),或者通過接口請(qǐng)求改變,我選擇了前者