Windows 環(huán)境下開發(fā),為了使用 react/mysql,啟用了 reactphp,此時(shí) Workerman 使用了 Workerman\Events\React\StreamSelectLoop,但這個(gè)實(shí)現(xiàn)類跟 Workerman\Events\Select 不同的是在 add() 里面并沒有處理 EventInterface::EV_EXCEPT,這最終導(dǎo)致了 AsyncTcpConnection 連接失敗時(shí)沒有觸發(fā) onClose。
請問有什么方法可以避開這個(gè)問題嗎?
解釋一下,我的項(xiàng)目實(shí)際生產(chǎn)環(huán)境是在 Linux,開發(fā)是在 Windows,我相信在 Linux 下應(yīng)該不存在這個(gè)問題,但這個(gè)問題給開發(fā)過程帶來很大的不便,所以還是希望能有辦法解決。
學(xué)習(xí)了一下 reactphp 的相關(guān)代碼,發(fā)現(xiàn)不能怪 Workerman\Events\React\StreamSelectLoop 沒有處理 EventInterface::EV_EXCEPT,而是 reactphp 的 event loop 根本就沒考慮這個(gè)專用于 Windows 平臺的 except 處理邏輯,也就是說,reactphp 不支持 Windows ……
在支持 Windows 這個(gè)問題上 Workerman 可比 reactphp 貼心多了。 :D