public function send($send_buffer, $raw = false)
....
Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));
// Check if the send buffer will be full.
$this->checkBufferWillFull();
return;
}
if ($this->bufferIsFull()) {
++self::$statistics['send_fail'];
return false;
}
$this->_sendBuffer .= $send_buffer;
// Check if the send buffer is full.
$this->checkBufferWillFull();
}
walkor大佬, 這里的添加了可寫事件,怎么觸發(fā)這個(gè)可寫事件呢,
可以用下面的代碼測試一下,發(fā)送大量數(shù)據(jù)。
<?php
require_once "../../vendor/autoload.php";
use Workerman\Worker;
$tcp_worker = new Worker("tcp://0.0.0.0:10003");
$tcp_worker->count = 4;
$tcp_worker->onMessage = function ($conn, $data) {
$arr = array_fill(0, 1000000, 'a');
$str = implode(',', $arr);
echo strlen($str), "\n";
$conn->send($str);
};
Worker::runAll();