我把原Http請求遷移到了Wss下。
背景:
Nginx轉(zhuǎn)發(fā)到Wss 端口1下。
Workerman開啟了端口1、2分別用于監(jiān)聽原Http請求與Php主動推送消息。
推送流程:
php調(diào)用端口2推到Workerman,Workerman推送到建立連接的客戶端,Workerman向php返回發(fā)送結(jié)果。
工作流程如下:
1.客戶端發(fā)起處理請求。
客戶端請求由Nginx轉(zhuǎn)發(fā)到Workerman 端口1。
端口1 Curl 本地Php Url處理。
Curl完成返回結(jié)果到客戶端。
存在問題:
在第3步時有可能觸發(fā)到Php的推送流程,此時會推送失敗且卡在php fread推送結(jié)果。一直無法收到Workerman向php返回發(fā)送結(jié)果導致超時。求教大佬能給個思路嗎。
部分代碼:
[attach]745[/attach]
[attach]746[/attach]
innerWorker是什么協(xié)議?push函數(shù)用的是text協(xié)議,那么innerWorker也必須是text協(xié)議才能通訊。
還有就是看到innerWorker的onMessage里有打印,那么調(diào)試模式在終端會輸出打印,是否有看到打印?
如果沒有打印說明沒有收到push函數(shù)內(nèi)stream_socket_client的的數(shù)據(jù),可能是stream_socket_client連錯ip或者端口。
innerWorker也是text協(xié)議,監(jiān)聽接口跟push連接中的時一致的。
調(diào)試模式下也沒有打印出東西。
stream_socket_client應(yīng)該是沒問題的,因為我把fread注釋掉后就會變成正常,也能打印出push的消息了。
感謝大佬回復。