mac php Swoole入门
2024-09-04 12:58:35
一、 swoole 扩展安装
安装前必须保证系统已经安装了下列软件
php-7.0
或更高版本gcc-4.8
或更高版本make
autoconf
pcre
(CentOS
系统可以执行命令:yum install pcre-devel
)
下载地址:
- https://github.com/swoole/swoole-src/releases
- http://pecl.php.net/package/swoole
- http://git.oschina.net/swoole/swoole
编译安装:
cd /usr/local
wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz
tar -zxvf v2.0.8.tar.gz
cd swoole-src-2.0.8/
phpize
./configure
make && make install
修改php.ini文件:
extension=swoole.so
通过php -m
或phpinfo()
来查看是否成功加载了swoole.so
,如果没有可能是php.ini
的路径不对,可以使用php --ini
来定位到php.ini
的绝对路径。
二、 swoole 应用
1.打开下载的swoole包,在/swoole/examples/server/echo.php,这个文件创建了一个TCP服务器,监听本机9501 端口
echo.php
<?php
$serv = new swoole_server("0.0.0.0", );
$serv->on('connect', function ($serv, $fd, $reactor_id){
echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Connect.\n";
});
$serv->set(array(
'worker_num' => , )); $serv->on('receive', function (swoole_server $serv, $fd, $reactor_id, $data) {
echo "[#".$serv->worker_id."]\tClient[$fd] client data: $data\n";
if ($serv->send($fd, "Server {$data}\n") == false)
{
echo "error\n";
} }); $serv->on('close', function ($serv, $fd, $reactor_id) {
echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Close.\n";
}); $serv->start();
2.启动server,打开终端,运行echo.php
命令
php echo.php
这个时候,其实Server已经启动了,并且正在运行,监听了本机的9501端口,此时Server处于等待的状态,所以没有任何输出。
打开一个新窗口,用telnet连接
telnet 127.0.0.1
输入hi,结果如下
-------end-----
最新文章
- Constraint2:constraint
- 利用HTML5的History API实现无刷新跳转页面初探
- bootstrap 分页
- ORACLE性能优化之SQL语句优化
- 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
- laravel框架——线上环境错误总结
- Java里的IO流里的 ObjectInputStream 的读取\写入!
- Centos7安装nginx并设置为HTTP代理服务器(正向代理)
- JavaScript(第二十七天)【错误处理与调试】
- Json转model对象,model转json,解析json字符串
- MySql cmd下的学习笔记 —— 有关建立表的操作(有关于数据类型)
- cxf 方法添加注解
- Docker的一些概念
- 20155226 《网络攻防》 Exp1 PC平台逆向破解(5)M
- 转 Kubernetes 入门 概念理解
- max3232
- 一个Flume 异常(Put queue for MemoryTransaction of capacity 100 full)的排查和解决思路
- 树莓派Raspberry命令行配置无线网络连接
- NBU 还原主/others服务器的SQLSERVER
- Ubuntu16.04上安装neo4j数据库
热门文章
- Linux环境配置与项目部署
- Finalizer 导致的OOM
- 灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?(阿里面试)
- jquery设置bootstrap-select的默认选中值
- 使用Ajax (put delete ) django原生CBV 出现csrf token解决办法
- Maven 教程(17)— Maven Profile 和 Filtering 简介
- AntDesign vue学习笔记(七)Form 读写与图片上传
- 【Python】处理Excel的库Xlwings
- Qt3D NodeInstantiator 使用时报出index out of range错误的记录
- python selenium IE Firxfor pyinstaller