玩家在登陸時(shí)就調(diào)用Gateway::setSession設(shè)置session到指定Worker,正常登陸斷線重連設(shè)置session都是有效的,客戶端發(fā)來Message都能調(diào)用到指定的Worker->OnMessage,但是玩家長(zhǎng)時(shí)間掛起 只發(fā)送心跳,長(zhǎng)時(shí)間之后斷開,再登陸有一定幾率導(dǎo)致設(shè)置session之后,客戶端發(fā)來Message會(huì)被隨機(jī)分配Worker
gatewayWorker里設(shè)置session和消息分配給哪個(gè)worker處理好像沒關(guān)系。
文檔說默認(rèn)路由規(guī)則是如果新連接到來時(shí)會(huì)隨機(jī)選一個(gè)worker,然后這個(gè)連接的所有請(qǐng)求都發(fā)給這worker處理。
所以如果連接斷開,又重連產(chǎn)生新的連接,那么這個(gè)連接可能會(huì)選擇另外一個(gè)worker,這個(gè)新連接的請(qǐng)求可能會(huì)發(fā)給另外一個(gè)worker處理。
用Gateway::setSession設(shè)置之后就會(huì)分配到綁定的Worker,正常登陸進(jìn)入都是可以的,只有后臺(tái)掛起時(shí)間很長(zhǎng)了之后才會(huì)出現(xiàn) 隨機(jī)的情況