繼續(xù)接上一個問題:http://www.wtbis.cn/q/12834
問題找到了,但是我不清楚subscription_count字段是干嘛的,而且程序里面是對的,但是執(zhí)行的時候就偏偏并不對
問題就在498行跟499行,當(dāng)我第一次將微信切換后臺斷開鏈接的時候,subscription_count等于1,減1后499行能正常銷毀,當(dāng)我微信第二次切換后臺斷開鏈接的時候,subscription_count就變成2了,減1后導(dǎo)致無法進行銷毀。
問題也在這,按道理說第一次就已經(jīng)銷毀了,第二次的時候subscription_count應(yīng)該是重新鏈接重新賦值應(yīng)該是等于1不應(yīng)該等于2,經(jīng)過測試多往返切換幾次subscription_count的值一直在累加并沒有真正的銷毀
微信內(nèi)打開網(wǎng)頁鏈接websocket后,然后把微信切換至后臺,切換后臺后等個幾十秒等websocket自動斷開鏈接后在才把微信切回前臺
這樣來回切換操作個兩次就會發(fā)現(xiàn)$result = $api->get('/channels')返回的在線用戶會一直在線 ,無法再次離線
可能你大屏的連接訂閱了對應(yīng)的頻道
大屏是訂閱的私有頻道:private-daping,所有用戶在線是訂閱的自己的頻道:user-line-xxx,我以上說的subscription_count字段一直累加的問題都是測試的同一個用戶同一個頻道的情況,我是在調(diào)試模式下一直打印$channel變量跟subscription_count
并非后端問題,微信內(nèi)打開網(wǎng)頁后切換微信至后臺等斷開鏈接后,再次將微信切換至前臺,此時網(wǎng)頁會發(fā)起兩次鏈接導(dǎo)致subscription_count累加成2(后端調(diào)試模式下在訂閱頻道的函數(shù)里面打印得出的結(jié)論),微信再次切后臺等斷開鏈接后在切換前臺,此時網(wǎng)頁會發(fā)起三次鏈接導(dǎo)致subscription_count累加成3,以此重復(fù)切換就導(dǎo)致subscription_count會越來越大,現(xiàn)在轉(zhuǎn)戰(zhàn)研究前端了