workerman icon indicating copy to clipboard operation
workerman copied to clipboard

revolt事件循环,AsyncTcpConnection报错

Open tianyiw2013 opened this issue 3 years ago • 2 comments

尝试了一下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);
    }

tianyiw2013 avatar Nov 05 '22 03:11 tianyiw2013

@walkor

有个疑问,本身workerman已经实现了很多事件循环类,在引入revolt,感觉有点重复吧。

我感觉workerman要是能实现fiber的话,也没有必要使用revolt。

我现在关注revolt主要是需要用他的fiber,我不需要关心事件循环的代码。

这两种方案可以考虑下: 1.精简workerman的事件循环,直接用revolt; 2.在workerman重写fiber,这样就不需要revolt了;

tianyiw2013 avatar Nov 05 '22 03:11 tianyiw2013

Workerman 只是一个异步框架,是否要实现 Fiber 得从长计议。 Revolt 就跟 Swoole 一样,在 Workerman 这里只是事件循环的适配的一个选择而已,使不使用完全看需求。 而是否直接用 Revolt 这一点并不是不行,但是 Workerman 作为一个独立的,无外部依赖的包,强依赖 Revolt 就会打破这一点,看似小事,实则会是一个大的决定。

xpader avatar Nov 06 '22 12:11 xpader