1.8.0
�ͻ���
- ����ԭ���첽MySQL�ͻ���
- ����ԭ���첽Redis�ͻ��ˣ�����Redis�ٷ��ṩ��hiredis��
- ����ԭ���첽Http�ͻ���
- ����ԭ���첽WebSocket�ͻ���֧��
- �ع��ײ�swClient���첽TCP�ͻ���ʵ�ַŵ�swoole�ں���
- ����
swoole_client->reuse���ԣ�SWOOLE_KEEP������ģʽ�±�ʶ�Ƿ�Ϊ���õ�����
��������
- �ع�websocket���������룬�ײ���
length_checkЭ�鸴����ͬ�Ĵ���������ǿ�ȶ��� - ����
Task���̶�tick/after��ʱ����֧�֣��ײ���ڸ߾��ȵ�setitimer+�ź�ʵ�� - ���湹�캯���д����host��port������
swoole_server�������� - ���Ӷ�˿ڶ�Э���֧�֣���Ҫ���£�
- ����
swoole_server->defer����������ʱִ��һЩ���� - ����
swoole_server->closeǿ���ж����ӵ�ѡ����õڶ���������true����շ��Ͷ��в������ж�����
��˿ڶ�Э��ʾ����
$serv = new swoole_server("0.0.0.0", 9501);
$port2 = $serv->listen('127.0.0.1', 9502, SWOOLE_SOCK_TCP);
$port2->set(array(
'open_length_check' => true,
'package_length_type' => 'N',
'package_length_offset' => 0, //��N���ֽ��ǰ����ȵ�ֵ
'package_body_offset' => 4, //�ڼ����ֽڿ�ʼ���㳤��
'package_max_length' => 2000000, //�����
));
$port2->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
echo "ServerPort2\n";
});
$serv->on('connect', function ($serv, $fd, $from_id){
echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Connect.\n";
});
$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
echo "[#".$serv->worker_id."]\tClient[$fd]: $data\n";
if ($serv->send($fd, "hello\n") == false)
{
echo "error\n";
}
});
$serv->on('close', function ($serv, $fd, $from_id) {
echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Close.\n";
});
$serv->start();
����
- ����swoole_table��keyֵ�Ĵ洢��
foreach����tableʱ���Ի�ȡ��keyֵ - ����swoole_table��key�Ա�ģʽ����crc32�ȶԸ�Ϊֱ�ӽ����ַ����Ա�
- ����utlist.h�
1.9.9�汾
swoole_table����Keyֵ�������ڴ�ռ�ã���table��sizeΪ100��KEYֵ�洢������64M�ڴ�ռ��
������
- ��������Ϣ���к���double-free����
- �ع���ʱ������
after��tick��ʱ��żȻ���ֵ�core dump������ - ��ʱ��ʹ����С�����ݽṹ������/ɾ��ʱ�临�Ӷ�Ϊ
log(N) - ��
swoole_process::signal��PHP7�·���core dump������ - ��
swoole_async_write��PHP7�·���core dump������
�Ƴ�����
- �Ƴ�δ֧�ֵ����������ʷ������룬��
heartbeat_ping��dispatch_key_type�� - �Ƴ�
swoole_server->addtimer��swoole_server->deltimer��swoole_server->gettimer - �Ƴ�
swoole_timer_add��swoole_timer_del - �Ƴ�
swoole_server��onTimer�¼� - �Ƴ�
task_worker_max���ü�������Դ��� - �Ƴ�
swoole_server->handler����