1.9.0
1.9�汾�����˶��������ԣ����˶����֪���⡣1.9�汾��100%���¼���1.8�ģ��û�����������
����RedisServer���
Swoole-1.9������һ������Redis
��������Э���Server��ܣ��ɻ��ڴ˿��ʵ��Redis��������֧���Զ���ָ�
ʾ����
use Swoole\Redis\Server; $server = new Server('127.0.0.1', 9501); $server->setHandler('Set', function($fd, $data) { $server->array($data[0], $data[1]); return Server::format(Server::INT, 1); }); $server->start();
�ͻ�������pipe����
Swoole-1.9Ϊ�첽TCP�ͻ���������һ��pipe
���������Խ��ͻ����յ��������ض�������һ���ļ��������������Ƿ�����������fd��stream��Դ��sockets��Դ������Swoole\Client��Swoole\Process�Ĺܵ���
ʾ����
use Swoole\Client; $client = new Client(SWOOLE_TCP | SWOOLE_ASYNC); $client->on("error", function() { echo "connect failed\n"; }); $client->on("close", function() { echo "connect closed\n"; }); $client->on("connect", function($cli) { //�������ض����������������ͻ��˷��͵��������ݻ��ӡ����Ļ $cli->pipe(STDOUT); }); $client->connect("127.0.0.1", 9501);
�����������¼�
1.9������2���µ��¼��ص�onBufferFull
��onBufferEmpty
���Լ�2���µ�������buffer_high_watermark
��buffer_low_watermark
��
���д������ݹ�������ߴ糬��buffer_high_watermark
�ʹ���onBufferFull
�¼��������������ݷ�����ɣ�ˮλ����buffer_low_watermark
��ֵ���ᴥ��onBufferEmpty
�¼���
�������¼�ͬʱ������Server
��Client
��
ʾ����
$client = new Swoole\Client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); //�����¼��ص����� $client->on("connect", function($cli) { $cli->send("hello world\n"); }); $client->on("receive", function($cli, $data) { echo "Received: ".$data."\n"; }); $client->on("error", function($cli) { echo "Connect failed\n"; }); $client->on("close", function($cli) { echo "Connection close\n"; }); $client->on("bufferFull", function($cli) { //��ͣ���ݽ��� $cli->pause(); }); $client->on("bufferEmpty", function($cli) { //�ָ����ݽ��� $cli->resume(); }); //������������ $client->connect('127.0.0.1', 9501, 0.5);
����Channelģ��
swoole-1.9������һ���µ��ڴ����ݽṹChannel��������Go��chan���ײ���ڹ����ڴ�+Mutex������ʵ�֣���ʵ���û�̬�ĸ������ڴ���С�
- Channel�����ڶ���̻����£��ײ��ڶ�ȡд��ʱ���Զ�������Ӧ�ò㲻��Ҫ��������ͬ������
- �����ڸ������ڴ����ſ������ӽ�����ʹ��
ʾ����
$chan = new Swoole\Channel(2 * 1024 * 1024); //2M $chan->push(1234); $chan->push("hello world"); $chan->push(array(1234, 4567)); while($r = $chan->pop()) { var_dump($r); }
����mmapģ��
swoole-1.9������һ���µ�ģ�飬�ṩ�˶Բ���ϵͳmmap�ķ�װ��ʹ��mmap ���Ժܷ���ؽ�һ�������ļ�ӳ��Ϊ�ڴ棬��д���ܸ��ߡ�
mmap���Լ��ٶ�д���̲�����IO���ġ������ڴ濽������ʵ�ָ����ܵĴ��̲��������У�����ʹ��mmap���������ܡ�
ʾ����
$file = __DIR__.'/data'; $size = 8192; $fp = swoole\mmap::open($file, 8192); fwrite($fp, "hello world\n"); fwrite($fp, "hello swoole\n"); fflush($fp); fclose($fp);
������������
- ����
swoole_clear_dns_cache
������������ײ��DNS����
������
- ��
Redis
�ͻ���type
�����������ַ��������� - ��
Http\Client
�����õ����� - ��ͬ���ͻ��˳���Э��
package_max_length
��Ч������ - ���Ͱ汾gcc�³�������żȻ��������������
- ���첽
WebSocket
�ͻ���websocket_mask
�������� - ��
MySQL
�ͻ����ڼ�¼��������ʱżȻ���������� - ��Macƽ̨��task����8Kʱ������ʱ�ļ�ʧ�ܵĵ�����Ͷ�����������
- ��
taskWaitMulti
�ڽ��̷��س���8Kʱ���ճ�ʱ������ - ��
atmoic
��add
��sub
����ֵ���ڵ�����ͬ������