revolt事件循环,AsyncTcpConnection报错
尝试了一下revolt,非常好用!!
我使用AsyncTcpConnection时报错,windows兼容的问题:
https://github.com/walkor/workerman/blob/97c3d43ff0327e4f1636bccf65d0c07d3bb947c7/src/Connection/AsyncTcpConnection.php#L217
https://github.com/walkor/workerman/blob/97c3d43ff0327e4f1636bccf65d0c07d3bb947c7/src/Connection/AsyncTcpConnection.php#L300
我临时在Workerman\Events\Revolt.php增加了这两个方法屏蔽错误的,目前测试没有问题。
public function onExcept($stream, $func)
{
}
function offExcept($stream)
{
return $this->offWritable($stream);
}
@walkor
有个疑问,本身workerman已经实现了很多事件循环类,在引入revolt,感觉有点重复吧。
我感觉workerman要是能实现fiber的话,也没有必要使用revolt。
我现在关注revolt主要是需要用他的fiber,我不需要关心事件循环的代码。
这两种方案可以考虑下: 1.精简workerman的事件循环,直接用revolt; 2.在workerman重写fiber,这样就不需要revolt了;
Workerman 只是一个异步框架,是否要实现 Fiber 得从长计议。 Revolt 就跟 Swoole 一样,在 Workerman 这里只是事件循环的适配的一个选择而已,使不使用完全看需求。 而是否直接用 Revolt 这一点并不是不行,但是 Workerman 作为一个独立的,无外部依赖的包,强依赖 Revolt 就会打破这一点,看似小事,实则会是一个大的决定。