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