Windows 下启用 reactphp 时 AsyncTcpConnection 无法正确处理连接失败

maq

Windows 环境下开发,为了使用 react/mysql,启用了 reactphp,此时 Workerman 使用了 Workerman\Events\React\StreamSelectLoop,但这个实现类跟 Workerman\Events\Select 不同的是在 add() 里面并没有处理 EventInterface::EV_EXCEPT,这最终导致了 AsyncTcpConnection 连接失败时没有触发 onClose。

请问有什么方法可以避开这个问题吗?

解释一下,我的项目实际生产环境是在 Linux,开发是在 Windows,我相信在 Linux 下应该不存在这个问题,但这个问题给开发过程带来很大的不便,所以还是希望能有办法解决。

2553 2 0
2个回答

maq

学习了一下 reactphp 的相关代码,发现不能怪 Workerman\Events\React\StreamSelectLoop 没有处理 EventInterface::EV_EXCEPT,而是 reactphp 的 event loop 根本就没考虑这个专用于 Windows 平台的 except 处理逻辑,也就是说,reactphp 不支持 Windows ……

在支持 Windows 这个问题上 Workerman 可比 reactphp 贴心多了。 :D

  • 暂无评论
six

学习了

  • 暂无评论
年代过于久远,无法发表回答
🔝