我想實現(xiàn)一個瀏覽器只能打開一個聊天窗口
如果瀏覽器打開多個頁面 isOnline 還可以用么??
請教群主如果可以 能講解下具體原理么
Gateway::isOnline($client_id)
是針對每個鏈接的,每打開一個頁面你的websocket應該就會與workerman建立一個鏈接,每個鏈接被分配了一個client_id(2.1.2版本中這個id叫uid,值是開發(fā)者自己定義的)。這個client_id保存在Gateway進程中,并且對應一個socket鏈接。
如果要判定某個client_id是否在線,只需要到對應那個gateway進程中查找client_id對應的socket是否存在即可。Gateway::isOnline($client_id)就是BusinessWorker進程與通過socket與Gateway進程通訊,查詢client_id對應的socket是否存在來判斷是否在線的