国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman發(fā)送數(shù)據(jù)大于8192,出錯

ocean

發(fā)送小于8192的數(shù)據(jù),沒有問題。
當(dāng)數(shù)據(jù)大于8192,通過回調(diào)繼續(xù)發(fā)送,但是在添加回調(diào)時,會出現(xiàn)PHP?Warning,回調(diào)添加失敗,造成后面的數(shù)據(jù)沒有發(fā)送。
添加回調(diào)代碼

Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));

出現(xiàn)的PHP Warning
Warning: event_set(): 'Array' is not a valid callback in /****/vendor/workerman/workerman/Events/Libevent.php on line 106 event_del_: event has no event_base set.
?
Linux:Centos , php,libevent信息

libevent support => enabled
extension version => 0.1.0
Revision => $Revision$
libevent version => 2.1.8-stable
2773 2 1
2個回答

walkor 打賞

Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));這句是你手動調(diào)用的?
是否更改了workerman代碼?
?

  • ocean 2019-01-14

    TcpConnection send方法中的代碼
    if ($this->_sendBuffer === '') {
    $len = @fwrite($this->_socket, $send_buffer , 8192);
    // send successful.
    if ($len === strlen($send_buffer)) {
    return true;
    }
    // Send only part of the data.
    if ($len > 0) {
    $this->_sendBuffer = substr($send_buffer, $len);
    } else {
    // Connection closed?
    if (!is_resource($this->_socket) || feof($this->_socket)) {
    self::$statistics['send_fail']++;
    if ($this->onError) {
    try {
    call_user_func($this->onError, $this, WORKERMAN_SEND_FAIL, 'client closed');
    } catch (\Exception $e) {
    Worker::log($e);
    exit(250);
    } catch (\Error $e) {
    Worker::log($e);
    exit(250);
    }
    }
    $this->destroy(self::DESTROY7);
    return false;
    }
    $this->_sendBuffer = $send_buffer;
    }
    Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));

  • walkor 2019-01-14

    應(yīng)該是你改動了workerman代碼導(dǎo)致的。看下baseWrite方法是不是public

  • ocean 2019-01-14

    是public。只是在TcpConnection中,添加了一下屬性字段,這個應(yīng)該不影響吧

  • ocean 2019-01-14

    workerman 版本是 const VERSION = '3.4.8';

  • walkor 2019-01-15

    應(yīng)該是改動源碼導(dǎo)致的

  • ocean 2019-01-16

    修改send方法中,打包的代碼造成的,已解決

ocean

問題已解決

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??