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
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

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

2个月前 评论

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

2个月前 评论
Hanson

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

file

2个月前 评论
arunfung

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

2个月前 评论
arunfung

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

2个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!