10、Swoole 初体验

引言

介绍完 Swoole 及具备的能力、应用场景以及常用框架,下面就带大家来简单体验一下,创建一个 TCP 服务。

Swoole 体验

  • 创建 swoole, 默认创建的是一个同步的阻塞tcp服务

    $host = "127.0.0.1"; // 0.0.0.0 代表接听所有
    // 创建Server对象,监听 127.0.0.1:9501端口
    $server = new Swoole\Server($host, 9501);
  • 注册事件


// 监听启动事件
$server->on('Start', function($server) use ($host){
    echo "启动swoole 监听的信息tcp:$host:9501\n";
});

//监听连接进入事件
$server->on('Connect', function ($server, $fd) {
    echo "Client: Connect.\n";
});

//监听数据接收事件
$server->on('Receive', function ($server, $fd, $from_id, $data) {
    $server->send($fd, "Server: ".$data);
});

//监听连接关闭事件
$server->on('Close', function ($server, $fd) {
    echo "Client: Close.\n";
});
  • 启动服务器
// 阻塞
$server->start(); // 阻塞与非阻塞

运行程序

// 保存成 PHP 文件,然后通过 php 运行
php swoole_tcp_server.php

连接服务

服务启动好之后就可以通过 curl 请求一下试试:
(请求之前需要)

curl http://127.0.0.1:9501
# 请求连接之后就会返回一些基础信息,并一直阻塞住
Server: GET / HTTP/1.1
User-Agent: curl/7.29.0
Host: 127.0.0.1:9501
Accept: */*

结语

# 一个用 swoole 搭建的服务器已经可以了,客户端连接正常,这样就可以保持一个长连接,而不必像 PHP-FPM 那种形式一样,每次都要重新连接,浪费资源,做微服务的时候就可以一直保持连接拉,包括做各种数据中间件的连接池都可以啦,接下来可以看我的博客继续学习 Swoole 啦
本作品采用《CC 协议》,转载必须注明作者和本文链接
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 文章来源blog.arunfung.com
arunfung
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

兄dei, 你这个 blog 速度有点慢, 等不下去了

4年前 评论

等你体验一段时间就不想体验了..

4年前 评论

@zxdstyle 看了一楼决定去围观下 :see_no_evil:

file

4年前 评论
arunfung

@zxdstyle :joy:放GitHub,访问有点慢,我得想办法优化一下

4年前 评论
arunfung

@Hanson @zxdstyle 已优化,现在访问速度应该还行,可以体验一下 https://blog.arunfung.com,我的微信:arunfung,欢迎大家提bug, :grin:

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!