Workerman集群中work_id唯一性問題。
workerman的集群推送中的案例:http://www.wtbis.cn/doc/workerman/components/channel-examples.html
案例中描述推送服務(wù)器 A 和 B 使用start_ws.php運行在192.168.1.2 和192.168.1.3上。
HTTP發(fā)布推送信息的服務(wù)X和Y使用start_http.php運行在192.168.1.4 和192.168.1.5上。
從http發(fā)送推送服務(wù)的時候,只傳了work_id和connection_id,并沒有標(biāo)識在哪臺服務(wù)上。因為worker_id和connection_id的組合并不能保證全局唯一。
假設(shè)用戶甲連接的是 A,其進程ID work_id=2, 連接ID connection_id=2
用戶乙連接的是 B,其進程ID也是 work_id=2, 連接ID connection_id=2
這樣我本來是想推送給甲的信息,用戶乙也能收到。
請問在集群中,是否有 work_id 唯一性的方案,異或我只能在用戶連接上的時候,標(biāo)識清楚用戶連接id、進程id、所屬集群的機器id。
找到官方的解決方案了,GatewayWorker中的client_id,就是為每個連接準(zhǔn)備的唯一ID。
http://www.wtbis.cn/doc/gateway-worker/client_id.html