下面兩個(gè)圖是我分別重啟后截圖,默認(rèn)都是從client_id=1開(kāi)始遞增。
這樣是不是一旦項(xiàng)目上線后,就不能關(guān)閉重啟了,只能通過(guò)平滑重啟,不然clietn_id與數(shù)據(jù)庫(kù)的uid對(duì)不上了?或者有沒(méi)有其他解決辦法?
查看源碼發(fā)現(xiàn),client_id是通過(guò)ip+端口+connection_id的16進(jìn)制,connection_id是當(dāng)前連接數(shù),所以workerman重啟后,connection_id就從1重新開(kāi)始計(jì)算了。
/**
* 生成connection id
* @return int
*/
protected function generateConnectionId()
{
$max_unsigned_int = 4294967295;
if (self::$_connectionIdRecorder >= $max_unsigned_int) {
self::$_connectionIdRecorder = 0;
}
while(++self::$_connectionIdRecorder <= $max_unsigned_int) {
if(!isset($this->_clientConnections[self::$_connectionIdRecorder])) {
break;
}
}
return self::$_connectionIdRecorder;
}
數(shù)據(jù)庫(kù)只存uid啊,為什么要去存儲(chǔ)client_id呢?對(duì)不對(duì)得上好像沒(méi)啥影響吧 ,比如我把客戶的username存為UID 那以后我只需要去得到他的username去拿數(shù)據(jù)庫(kù)的東西啊 不需要在乎client_id 新手小白一個(gè) 不知道對(duì)不對(duì)..
謝謝,之前以為client_id是類似uuid或者md5之類的,永遠(yuǎn)不會(huì)重復(fù)的,所以過(guò)渡依賴了sendToClient,現(xiàn)在懂了