찾다
백엔드 개발PHP 튜토리얼Swoole 1.10.0 새 버전 출시, 많은 새로운 기능 분석 추가

Swoole 버전 1.10.0이 최근 출시되어 많은 새로운 기능이 추가되었으므로 다음 글에서는 Swoole 1.10.0 버전의 새로운 기능에 대한 관련 정보를 주로 소개하고 친구들이 참고할 수 있도록 공유합니다.

머리말

Swoole은 인터넷, 이동통신, 기업용 소프트웨어, 클라우드 등 다양한 영역에서 활용이 가능합니다. 컴퓨팅, 온라인 게임, 사물 인터넷(IOT), 차량 인터넷, 스마트 홈 및 기타 분야. PHP + Swoole을 네트워크 통신 프레임워크로 사용하면 기업 IT R&D 팀의 효율성이 크게 향상되고 혁신적인 제품 개발에 더 집중할 수 있습니다. 최근 PHP의 비동기, 병렬, 고성능 네트워크 통신 엔진 Swoole 버전 1.10.0이 출시되었습니다. 이 버전에는 몇 가지 새로운 기능이 추가되었습니다. 아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.

자동 DNS 확인

새 버전의 비동기 클라이언트에는 더 이상 다음이 필요하지 않습니다. swoole_async_dns_lookup 사용 도메인 이름이 확인되고 하단 레이어는 자동 도메인 이름 확인을 구현합니다. 클라이언트는 연결 메소드를 실행할 때 도메인 이름을 직접 전달할 수 있습니다.

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function(swoole_client $cli) {
 $cli->send("GET / HTTP/1.1\r\n\r\n");
});
$client->on("receive", function(swoole_client $cli, $data){
 echo "Receive: $data";
 $cli->send(str_repeat('A', 100)."\n");
 sleep(1);
});
$client->on("error", function(swoole_client $cli){
 echo "error\n";
});
$client->on("close", function(swoole_client $cli){
 echo "Connection close\n";
});
//底层会自动进行异步域名解析
$client->connect('www.baidu.com', 9501);

느린 요청 로그
# 🎜 🎜#

새 버전에는 느린 요청 추적 기능이 추가되어 느린 요청의 PHP 함수 호출 스택을 기록할 수 있습니다.

function test()
{
 test_sleep();
}
function test_sleep()
{
 echo "sleep 5\n";
 sleep(5);
}
$server = new swoole_server('127.0.0.1', 9501);
$server->set([
 'worker_num' => 1,
 'task_worker_num' => 1,
 'trace_event_worker' => true,
 'request_slowlog_timeout' => 1,
 'request_slowlog_file' => '/tmp/trace.log',
]);
$server->on('Receive', function($serv, $fd, $reactor_id, $data) {
 test();
 $serv->send($fd, "Swoole: $data");
});
$server->start();

느린 요청을 처리한 후 /tmp/trace.log 로그에 한 줄의 오류 메시지가 인쇄됩니다. # 🎜🎜##🎜 🎜#

[08-Jan-2018 15:21:57] [worker#0] pid 26905
[0x00007f60cda22340] sleep() /home/htf/workspace/swoole/examples/server/trace.php:10
[0x00007f60cda222e0] test_sleep() /home/htf/workspace/swoole/examples/server/trace.php:4
[0x00007f60cda22280] test() /home/htf/workspace/swoole/examples/server/trace.php:28
[0x00007f60cda22190] {closure}() /home/htf/workspace/swoole/examples/server/trace.php:42
[0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42

새 STREAM 모듈

# 🎜🎜 ##🎜 🎜 #새로운 스트림 모듈은 Reactor, Worker 및 Task 프로세스 간의 통신 방식을 더욱 유연하고 최대한 분리시킵니다. 복잡한 온라인 프로젝트는 스트림 모드를 사용하여 요청 할당 및 예약을 보다 효율적으로 만듭니다.

$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
 'dispatch_mode' => 7,
 'worker_num' => 2,
));
$serv->on('receive', function (swoole_server $serv, $fd, $threadId, $data)
{
 var_dump($data);
 echo "#{$serv->worker_id}>> received length=" . strlen($data) . "\n";
});
$serv->start();

Reactor와 Worker 간의 통신, 디스패치 모드 = 7을 사용하여 활성화

# 🎜🎜#

    작업자와 작업 간의 통신, task_ipc_mode = 4를 사용하여
  • 추가된 이벤트: :cycle function

사용자 코드는 각 이벤트 루프의 끝에서 호출되는 EventLoop 후크 함수를 사용자 정의할 수 있습니다. 자체 스케줄러를 구현하려면 Generator + Yield 또는 Promise-like Swoole 프레임워크를 사용하는 것이 편리합니다.

Swoole\Timer::tick(2000, function ($id) {
 var_dump($id);
});
Swoole\Event::cycle(function () {
 echo "hello [1]\n";
 Swoole\Event::cycle(function () {
 echo "hello [2]\n";
 Swoole\Event::cycle(null);
 });
});

기타 업데이트

#🎜 🎜 #

부호 있는 정수를 지원하도록 Table::incr 및 Table::decr 업데이트

PHP-7.2 버전과 호환 가능 # 🎜🎜#
  • Event::del 함수가 표준 입력 핸들을 제거할 수 없는 문제 수정

  • 작업 수정 프로세스 기본값 타이머 간격이 클라이언트 수신 시간 초과보다 작아서 클라이언트::recv 교착 상태 문제가 발생합니다

  • ssl_host_name 구성 항목을 추가하여 SSL의 적법성을 확인합니다. /TLS 호스트#🎜 🎜#

  • dispatch_mode = 3을 사용하면 모든 작업자가 바쁠 때 오류 로그가 인쇄됩니다

  • #🎜 🎜#수신 포트의 모든 연결을 탐색할 수 있는 포트 반복자 추가
  • x86이 아닌 플랫폼에서 테이블의 메모리 정렬 문제 해결
  • #🎜🎜 ##🎜🎜 #

    BASE 모드에서 잘못된 max_request 구성 문제 수정

  • 일부 클라이언트 ping 시 WebSocket 서버가 잘못된 패킷을 반환하는 문제 수정 프레임에 마스크 데이터가 포함되어 있음

  • HttpClient가 HEAD 메서드를 사용하여 Content-Length를 전달하는 콘텐츠에 응답하여 중단되는 문제 해결

    #🎜🎜 #
  • JSON 형식에 대한 MySQL 비동기 클라이언트 지원 추가

  • 다운로드 주소
  • #🎜🎜 #
  • GITHUB: https://github.com/swoole/swoole-src/releases/tag/v1.10.0
  • 오픈 소스 중국: https: //gitee.com/swoole/swoole/ tree/v1.10.0/

    PECL: https://pecl.php.net/package/swoole/1.10.0
  • #🎜🎜 #로컬 다운로드: http://xiazai.jb51.net/201801/yuanma/swoole-src-1.10.0(jb51.net).rar

summary# 🎜🎜##🎜🎜 #

당신이 관심을 가질 만한 기사:

인쇄 방법에 대한 설명 예 PHP의 행렬(나선형 행렬) 시계 방향

PHP에서 이진 트리가 대칭인지 확인하는 방법에 대한 설명 디렉토리의 모든 파일에 대한 방법의 예

위 내용은 Swoole 1.10.0 새 버전 출시, 많은 새로운 기능 분석 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
workerman和swoole性能谁更好?如何选择?workerman和swoole性能谁更好?如何选择?Dec 01, 2022 am 10:00 AM

workerman 对比 swoole 实际开发项目中,你会选择哪个?对于新手学哪个较好,有什么建议吗?

swoole和go选哪个?优缺点分析swoole和go选哪个?优缺点分析Mar 27, 2023 pm 03:29 PM

在现代的应用开发中,异步编程在高并发场景下变得越来越重要。Swoole和Go是两个非常流行的异步编程框架,它们都具有高效的异步能力,但是很多人在选择使用哪个框架时会陷入困境。本文将探讨如何选择Swoole和Go,以及它们的优缺点。

swoole怎么学?学会要多久?swoole怎么学?学会要多久?Mar 27, 2023 pm 03:29 PM

你学会 Swoole 需要多久呢?这个问题其实非常难回答,因为它涉及到很多因素,比如你的编程基础、学习动力、时间安排等等。不过,在这篇文章中,我将分享一些我自己学习 Swoole 的经验和建议,希望能够对你有所帮助。

探讨一下web服务器为什么不用swoole探讨一下web服务器为什么不用swooleMar 27, 2023 pm 03:29 PM

​Swoole是一个基于PHP的开源高性能网络通信框架,它提供了TCP/UDP服务器和客户端的实现,以及多种异步IO、协程等高级特性。随着Swoole日益流行,许多人开始关心Web服务器使用Swoole的问题。为什么当前的Web服务器(如Apache、Nginx、OpenLiteSpeed等)不使用Swoole呢?让我们探讨一下这个问题。

聊聊怎么在docker中搭建swoole环境聊聊怎么在docker中搭建swoole环境Jun 28, 2022 pm 09:02 PM

怎么在docker中搭建swoole环境?下面本篇文章给大家介绍一下用docker搭建swoole环境的方法,希望对大家有所帮助!

php如何让Swoole/Pool进程池实现Redis持久连接php如何让Swoole/Pool进程池实现Redis持久连接May 27, 2023 pm 05:55 PM

php让Swoole|Pool进程池实现Redis持久连接进程池,基于Swoole\Server的Manager管理进程模块实现。可管理多个工作进程,相比Process实现多进程,Process\Pool更加简单,封装层次更高,开发者无需编写过多代码即可实现进程管理功能,配合Co\Server可以创建纯协程风格的,能利用多核CPU的服务端程序。Swoole进程池实现redis数据读取如下案例,通过WorkerStart启动Redis进程池,并持久读取Redis列表数据;当WorkerStop断开

2023最新swoole视频教程推荐(从入门到高级)2023最新swoole视频教程推荐(从入门到高级)Oct 25, 2019 pm 02:09 PM

以下为大家整理了php异步通信框架Swoole的视频教程,不需要从迅雷、百度云之类的第三方平台下载,全部在线免费观看。教程由浅入深,有php基础的人就能学习,从安装到案例讲解,全面详细,帮助你更快更好的掌握Swoole框架!

为什么要在 Swoole 上运行 Laravel?为什么要在 Swoole 上运行 Laravel?Apr 26, 2022 am 09:54 AM

为什么要在 Swoole 上运行 Laravel?因为使用 Swoole 可以加速 Laravel 应用。下面本篇文章就来带大家聊聊怎么在Swoole上使用Laravel,希望对大家有所帮助!

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전