說下思路,請教下大家看看有什么不對或需要改進的地方,謝謝
用uid和client_id綁定時有這樣一個業(yè)務情景:
用戶用多個瀏覽器都登錄了,如果用戶在某一個瀏覽器點退出登錄時,需要當前瀏覽器所有的socket連接全部斷開,在onclose清理時,無法判斷需要清理那些socket。為了解決這個問題,我在redis中做了如下處理
集合類型
uid:1
session_id:65nfsq33hbto6s5d61eq80ri92 (如uid為1的用戶登錄chrome產(chǎn)生的session_id)
session_id:25nfsq33hbto6s5d61eq80ri93 (如uid為1的用戶登錄safari 產(chǎn)生的session_id)
集合類型
session_id:65nfsq33hbto6s5d61eq80ri92 (chrome連接產(chǎn)生的全部client_id )
client_id:1
client_id:2
client_id:3
session_id:25nfsq33hbto6s5d61eq80ri93(safari連接產(chǎn)生的全部client_id )
client_id:4
client_id:5
client_id:6
這樣,用戶在safari退出登錄時 onclose時,就可以通過uid和session_id進行區(qū)分清理
大家?guī)涂匆幌掠袥]有更好的方法,謝謝~