請(qǐng)教個(gè)問題:在相同IP和端口號(hào)的情況下建立的連接,在短時(shí)間里內(nèi)重連,重連的時(shí)候會(huì)被踢下線,業(yè)務(wù)代碼什么都沒有寫,這是為什么?
業(yè)務(wù)bug
@1459:客戶端 當(dāng)同一IP同一端口號(hào) 短時(shí)間重連 會(huì)遇到這個(gè)問題 但是當(dāng)端口號(hào)不同的時(shí)候,就不會(huì)有這個(gè)問題出現(xiàn) 不知道是哪里的問題 linux lsof:端口號(hào)命令 也看不到有這個(gè)連接在線 應(yīng)該是被服務(wù)端T掉了的
@1459:想了解下workerman底層 是否是根據(jù)IP和端口號(hào)生成的socket連接,如果是,那么,會(huì)不會(huì)是把第二次的連接當(dāng)成了第一次的連接從而踢掉了
我理解你的意思了,發(fā)起連接的時(shí)候你復(fù)用了本地端口。本地端口沒那么快回收的,所以你快速?gòu)?fù)用一個(gè)端口造成連接建立失敗,實(shí)際上連接都沒建立起來就失敗了
@1459:建立起來了 我還收到了消息的 手動(dòng)一直點(diǎn)發(fā)送消息能收到 ,但是等待30秒再發(fā) 這個(gè)時(shí)候就掉線了
@1459:并且 這邊是單片機(jī) 重連的時(shí)候 實(shí)際已經(jīng)重啟了 應(yīng)該不會(huì)存在端口釋放復(fù)用的問題
連的時(shí)候不要指定本地固定端口去連。因?yàn)槟銠C(jī)器重啟了服務(wù)端不一定知道,服務(wù)端操作系統(tǒng)認(rèn)為這個(gè)連接還連著,并記錄客戶端本地端口。當(dāng)你再用這個(gè)端口去連的時(shí)候服務(wù)端操作系統(tǒng)會(huì)認(rèn)為你這個(gè)是或者上個(gè)連接是非法連接,就會(huì)有問題
@1459:客戶端連接其他的非workerman socket測(cè)試服務(wù)端都沒有問題的,這邊自己用其他語言也寫了幾個(gè)socket服務(wù)端,都沒有問題,唯獨(dú)使用php workerman框架 會(huì)出現(xiàn)這個(gè)問題,會(huì)不會(huì)是workerman釋放失去的連接,邏輯處理上有一些問題???求賜教