首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
SwooleWorker介绍
SwooleWorker安装
SwooleWorker接口列表
Register详解
Gateway详解
Worker详解
安全重启
分布式布署
session处理
自定义命令
数据库
Redis数据库
HttpApi接口
开启SSL
与workerman对比
当前位置:
首页>>
技术小册>>
Swoole高性能框架-SwooleWorker
小册名称:Swoole高性能框架-SwooleWorker
**使用composer方式安装:** ```asp composer create-project xielei/project ``` **下载代码安装:** 代码库地址: `https://github.com/xielei/project` **目录结构:** ```asp project |-- LICENSE |-- README.md |-- app | |-- gateway | |-- register | `-- worker |-- composer.json |-- composer.lock `-- vendor |-- autoload.php |-- composer `-- xielei ``` 根据自己的开发环境分别修改app目录下的gateway/register/worker各个目录下的start.php文件中的端口。 ![](/uploads/images/20230530/81814b4f33510f1673012eeed668a4ff.png) 根据上面的架构图,Gateway的进程监听的端口为对外端口,register注册中心使用的是内部端口 所以我们只需要更改Gateway的端口即可。 因为我的docker环境开放的端口为9090-9095: ```asp u2@u2:~/swoole/4.8/www/project/app$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d57ffcb0bbc2 phpswoole/swoole:4.8-php7.3 "/entrypoint.sh" 3 hours ago Up 2 hours 0.0.0.0:9090-9095->9090-9095/tcp, :::9090-9095->9090-9095/tcp swoole48 ``` 因此,tcp端口我这里改为9090: project\app\gateway\start.php: ```asp // 监听一个裸TCP端口 $gateway->listen('0.0.0.0', 9090); ``` > `$gateway->listen('0.0.0.0', 9090);`解释: - 如果是在docker环境下,相当于server单独运行在一台服务器,需要从宿主机访问,因此,这里的ip由127.0.0.1改为0.0.0.0 - 如果非docker环境,原理相同,需要确认你是从哪里访问(127.0.0.1或所有ip都可以访问0.0.0.0),确认端口是否可访问,如果不能访问,需要确认是否防火墙未打开指定端口 **启动服务器:** 为了方便服务器的启动停止 ,编写一个简单的shell脚本来管理: project\app\server.sh ```asp #!/bin/bash if [ "$1" != 'start' ] && [ "$1" != 'stop' ]; then echo "Please use start/stop param" exit 1 fi if [ "$1" = 'start' ]; then php register/start.php start -d php worker/start.php start -d php gateway/start.php start -d elif [ "$1" = 'stop' ]; then php register/start.php stop php worker/start.php stop php gateway/start.php stop fi ``` 启动: ```asp root@d57ffcb0bbc2:/var/www/project/app# ./server.sh start the service is running with daemonize the service is running with daemonize the service is running with daemonize ``` 如果启动服务器后,看到`the service is running with daemonize`提示,代表启动成功。 上面三条输出分别代表的是Gateway、Worker、Register三个服务进程。 通过ps命令查看启动的服务进程: ![](/uploads/images/20230530/cfa7dd50ebfc9061276274f6dd31206a.png) 测试: ```asp u2@u2:~/swoole/4.8/www/project/app$ telnet 127.0.0.1 9090 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 7f000001239400000002 connect~ hello 7f000001239400000002 say hello 你好 7f000001239400000002 say 你好 ``` 发送hello,你好两条消息,收到服务器响应。
上一篇:
SwooleWorker介绍
下一篇:
SwooleWorker接口列表
该分类下的相关小册推荐:
PHP程序员面试算法宝典
Laravel(10.x)从入门到精通(二)
Laravel(10.x)从入门到精通(八)
PHP8入门与项目实战(5)
PHP8入门与项目实战(6)
PHP合辑2-高级进阶
PHP8入门与项目实战(8)
Workerman高性能框架-GatewayWorker
Laravel(10.x)从入门到精通(四)
Swoole高性能框架-Hyperf
PHP面试指南
PHP安全之道