應(yīng)用場(chǎng)景:
我采用websocket的方法連接對(duì)方的服務(wù),對(duì)方的服務(wù)是以用戶登錄的方式連接。即我每多一個(gè)connection都是一個(gè)普通的用戶登錄連接狀態(tài)。由于網(wǎng)絡(luò)的問題或者對(duì)方服務(wù)器鑒權(quán)問題,我每隔4小時(shí)把所有的用戶連接斷開$con->close()方法,然后通過onClose事件等待10秒重新連接。
出現(xiàn)的問題:
每個(gè)用戶connection我都做了一個(gè)timer監(jiān)聽它與對(duì)方服務(wù)器的連接狀態(tài),而且我也在connection設(shè)置單獨(dú)的屬性。過了一段時(shí)間~通常會(huì)1天以上~會(huì)出現(xiàn)connection消失,我是通過server.php status 查看當(dāng)前整個(gè)服務(wù)的狀態(tài),發(fā)現(xiàn)connection全部沒有了。但是每個(gè)connection timer監(jiān)聽還在,但是已經(jīng)無法獲取之前的屬性等等一些列數(shù)據(jù)了。
worker_name為none的用戶連接會(huì)消失。比如現(xiàn)在是2個(gè)用戶~過段時(shí)間就會(huì)丟失2個(gè)變?yōu)?。 請(qǐng)問這是什么原因??我查找了很久很久了,也不知道如何下手查找了?請(qǐng)求幫助!
我現(xiàn)在是這樣測(cè)試的~我手動(dòng)通過$con->close()斷開連接,它會(huì)自動(dòng)觸發(fā)onClose事件,但是我這個(gè)時(shí)候不重連它(不使用$con->reConnect()方法), 我status看了connection并沒有減少數(shù)量。 我接下來應(yīng)該如何排查?
connections 表示當(dāng)前未斷開的連接數(shù),如果某個(gè)連接斷開了,連接對(duì)象銷毀了,connections就相應(yīng)減1。
如果connections為0,說明連接都斷開了。至于定時(shí)器還在,是因?yàn)閿嚅_連接后沒刪除定時(shí)器,連接和定時(shí)器是2個(gè)不同的東西,連接斷開了定時(shí)器還是一直存在的。你應(yīng)該在連接onclose的時(shí)候刪除定時(shí)器。
謝謝你的解答。 我現(xiàn)在是這樣測(cè)試的~我手動(dòng)通過$con->close()斷開連接,它會(huì)自動(dòng)觸發(fā)onClose事件,但是我這個(gè)時(shí)候不重連它, 我status看了connection并沒有減少數(shù)量。 我接下來應(yīng)該如何排查?