按官網(wǎng)例子寫的推送給設(shè)備端消息,運行一段時間后,
$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1);
fwrite($client, json_encode($data)."\n");
$res = fread($client, 8192);
使用平臺為LINUX ,調(diào)試發(fā)現(xiàn)這個推送消息給設(shè)備會出現(xiàn)阻塞,具體原因目前沒查到,狀況為心跳正常,但是推送數(shù)據(jù)給設(shè)備端,返回超時,60秒都不能返回推送成功數(shù)據(jù),導(dǎo)致后面一直運行不了,重啟進程服務(wù),正常,所以想知道是什么問題引起的,需要怎么去解決,查看了LINUX是SOCKET連接數(shù)設(shè)置是6萬多,所以應(yīng)該不是端口連接數(shù)受限制引起的
下次遇到這個問題運行 php start.php status截圖下,截圖截全,不要截圖部分。
如果status里有進程出現(xiàn)busy狀態(tài),參考 http://doc.workerman.net/debug/busy-process.html 定位。
參考手冊 http://doc.workerman.net/appendices/kernel-optimization.html 優(yōu)化linux內(nèi)核,并安裝event擴展(超過1000連接event擴展是必須的)。
還有看下系統(tǒng)負載是否正常。負載高的話也會延遲。
event擴展擴展已經(jīng)安裝了,linux內(nèi)核也已經(jīng)優(yōu)化了,全部是按手冊上去優(yōu)化和安裝的,但是$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1);推送消息給到設(shè)備,只要設(shè)備連接數(shù)超過1024,推送就會一直卡住,推送不出去,打印1234端口和設(shè)備的心跳,沒有卡頓,所以不知道現(xiàn)在這個情況要怎么處理
event擴展沒安裝成功,用的是select,最高1024個連接
但是我確實是按手冊上的去裝的呀,如果安裝成功了,會是一個怎么樣的顯示呢,就你說的select那個位置
我現(xiàn)在上傳一個我按命令找到的event擴展的圖片