hi,walkor,在用GateWayWorker應(yīng)用到實(shí)際項(xiàng)目中時(shí),服務(wù)器端設(shè)置的1分鐘心跳間隔,如果設(shè)備在斷電或斷網(wǎng)
的時(shí)候服務(wù)器不能立馬感知到設(shè)備已經(jīng)下線,此時(shí)設(shè)備斷電或斷網(wǎng)后立馬重新連接,那么GateWay提示“拒絕重
連”,等服務(wù)端通過心跳感知到設(shè)備已經(jīng)下線后,設(shè)備才能重新連接。這是不是服務(wù)器還認(rèn)為此設(shè)備在線,不能重
復(fù)連接?那么有辦法怎么能讓設(shè)備斷電后立馬重連嗎?因?yàn)槲沂歉布耐侣?lián)調(diào)的。他說(shuō)重連的時(shí)候會(huì)發(fā)一個(gè)
reset包給我
這是不是服務(wù)器還認(rèn)為此設(shè)備在線,不能重復(fù)連接?
Gateway沒這種判斷。應(yīng)該是操作系統(tǒng)層面的拒絕,還沒有到GatewayWorker這一層面。
每個(gè)tcp鏈接在客戶端側(cè)(設(shè)備側(cè))都會(huì)有一個(gè)本地臨時(shí)端口,有可能是設(shè)備重連時(shí)重復(fù)使用了這個(gè)端口,而服務(wù)端操作系統(tǒng)認(rèn)為這個(gè)端口不應(yīng)該發(fā)來(lái)新tcp鏈接請(qǐng)求,因?yàn)榭蛻舳诉@個(gè)端口已經(jīng)建立了鏈接,所以拒絕了鏈接。
可以嘗試下在客戶端側(cè)在鏈接的時(shí)候改變下本地端口,不要使用固定的本地端口去連服務(wù)端。