swoole安装及测试示例(代码片段)

Wss0130 Wss0130     2022-11-29     787

关键词:

swoole安装

方案一:MAC本地安装

官方安装命令:pecl install swoole

下载PECL:

安装PECL:


安装swoole:
问题1: /tmp/pear/install wu无权限
解决: sudo chmod 0777 /tmp/pear/install
问题2: channel “pecl.php.net” has updated its protocols
问题3: File http://pecl.php.net:80/channel.xml not valid
问题4: ssl://pecl.php.net:443 failed
解决:搜索说是证书问题,但尝试了网上各种方案,最终仍未解决!!!例如:https://www.jianshu.com/p/059c88417ca8


方案二:开发机安装

步骤如下:
1、pecl install swoole
2、进入目录
3、phpize
4、./configure(报错及解决方案如下图)
5、make
6、sudo make install
8、php -i | grep php.ini (查找php.ini配置路径)
9、sudo vi /usr/local/matrix/lib/php.ini
(在文件最后加上extension=swoole.so)
10、php -m (即可看到扩展模块swoole)
11、重启服务

 error: C++ preprocessor "/lib/cpp" fails sanity check 
 问题的根源是缺少必要的C++库。如果是CentOS系统,运行,如下命令解决:
yum install glibc-headers
yum install gcc-c++ 


测试示例

HTTP 服务

示例代码

首先我们通过 Swoole 编写一个简单的 HTTP 服务器,在测试目录下创建一个 http_server.php 文件,编写文件代码如下:
本地配置host:10.26.27.95 swoole.com

<?php

// 表明服务器启动后监听本地 9051 端口
$server = new swoole_http_server('swoole.com', 9501);

// 服务器启动时返回响应
$server->on("start", function ($server) 
    echo "Swoole http server is started at http://swoole.com:9501\\n";
);

// 向服务器发送请求时返回响应
// 可以获取请求参数,也可以设置响应头和响应内容
$server->on("request", function ($request, $response) 
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\\n");
);

// 启动 HTTP 服务器
$server->start();

启动服务

浏览器中输入:swoole.com:9501

TCP服务

示例代码

TCP服务端:

<?php
namespace Swoole;

// 监听本地 9503 端口,等待客户端请求
$server = new Server("127.0.0.1", 9503);
// 建立连接时输出
$server->on('connect', function ($serv, $fd)
    echo "Client:Connect.\\n";
);
// 接收消息时返回内容
$server->on('receive', function ($serv, $fd, $from_id, $data) 
    $serv->send($fd, 'Swoole: '.$data);
    $serv->close($fd);
);
// 连接关闭时输出
$server->on('close', function ($serv, $fd) 
    echo "Client: Close.\\n";
);
// 启动 TCP 服务器
$server->start();

TCP客户端:

<?php
namespace Swoole;

// Swoole4以后通过协程来实现异步通信
go(function () 
    $client = new Coroutine\\Client(SWOOLE_SOCK_TCP);
    // 尝试与指定 TCP 服务端建立连接(IP和端口号需要与服务端保持一致,超时时间为0.5秒)
    if ($client->connect("127.0.0.1", 9503, 0.5)) 
        // 建立连接后发送内容
        $client->send("hello world\\n");
        // 打印接收到的消息
        echo $client->recv();
        // 关闭连接
        $client->close();
     else 
        echo "connect failed.";
    
);

运行结果

先启动 TCP 服务端,然后新开启一个终端窗口,启动 TCP 客户端:

UDP服务

示例代码

<?php
// 创建UDP Server对象
$serv = new swoole_server('127.0.0.1', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);

// 监听数据接收事件
$serv->on('Packet', function ($serv, $data, $clientInfo) 
    $serv->sendto($clientInfo['address'], $clientInfo['port'], 'Server ' . $data);
    var_dump($clientInfo);
);

// 启动服务器
$serv->start();

运行结果

参考文章

https://wiki.swoole.com/#/environment

httpserver2框架swoole混合秒杀(代码片段)

...读目录使用第三方自定义路由、简易封装Request对象1下载安装路由1路由应用示例3简易封装request4应用简易Request封装5测试技巧使用第三方自定义路由、简易封装Request对象1下载安装路由https://github.com/nikic/FastRoute需要PHP7.4或更新版... 查看详情

swoole的安装(代码片段)

...下载下来注意:v4.4.*版本需要phpv7.1及以上版本(1)下载安装包wgethttps://github.com/swoole/swoole-src/archive/v4.3.1.zip(2)进行解压,并进入解压后的文件unzipv4.3.1.zipcdswoole-src-4.3.1(3)执行phpize命令并编译(编译时需要编译到你的PHP版本... 查看详情

httpserver1框架swoole混合秒杀(代码片段)

阅读目录搭建Swoole环境和开发环境1修改配置2安装容器3测试效果知识点dockerswoole应用实例1查看swoole版本2创建项目目录3创建composer.json文件4运行composer5添加swooleide提示插件6新建index.php文件启动swoole搭建Swoole环境和开发环境安装doc... 查看详情

windows7下采用cygwin编译安装swoole扩展(代码片段)

...看cygwin当前的版本: cygcheck-ccygwin  检查所有安装软件的版本号:cygcheck-c 查看某一个软件安装的版本:cygcheck-c 软件名称查看本地已经安装的所有软件包: cygcheck-c-d某个软件包是否已经安装及版本信息:cyg... 查看详情

httpserver1框架搭建swoole环境和开发环境(代码片段)

阅读目录搭建Swoole环境和开发环境1修改配置2安装容器3测试效果知识点dockerswoole应用实例1查看swoole版本2创建项目目录3创建composer.json文件4运行composer5添加swooleide提示插件6新建index.php文件启动swoole搭建Swoole环境和开发环境安装doc... 查看详情

swoole协程性能测试(代码片段)

//开启协程化,文件操作,sleep,Mysqli,PDO,streams等都变成异步IOCo::set([‘hook_flags‘=>SWOOLE_HOOK_ALL]);$s=microtime(true);//创建协程容器Coun(function()//开启100个协程执行usleepfor($c=100;$c--;)go(function()for($n=100;$n--; 查看详情

swoole新手教程01-环境搭建及扩展安装

写在前面的废话《swoole源代码分析》已经写了13章,整个swoole的核心架构基本都分析的差点儿相同了。于是心里一直以来想整理swoole的文档并写一份教程的想法就再度浮了出来。实话说,我接触swoole乃至接触PHP都仅有9个月的时间... 查看详情

编译安装swoole(代码片段)

一、下载swoole源码:https://www.swoole.com/二、由于没有configure所以要用phpize编译出configure三、/usr/local/soft/php/bin/phpize编译用configure四、./configure--with-php-config=/usr/local/soft/php/bin/php-configmakemakeinstallextension=swoole.so 查看详情

mac安装swoole(代码片段)

源码安装去www.swoole.com官网下载源码然后解压,cd进去命令cdswoolephpize./configuremakesudomakeinstall在mac中注意:在make时会提示没有php.h文件  Mojave没有安装标头。要安装标头:open/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_ma 查看详情

apachekafkakafka安装及简单示例(代码片段)

(一)ApacheKafka安装1、安装环境与前提条件??安装环境:Ubuntu16.04??前提条件:ubuntu系统下安装好jdk1.8以上版本,正确配置环境变量ubuntu系统下安装好scala2.11版本安装ZooKeeper(注:kafka自带一个Zookeeper服务,如果不单独安装,也可... 查看详情

mha安装及测试(代码片段)

MHA安装官方介绍准备工作1.下载安装包2.配置好主从主:192.168.160.132从:192.168.160.133192.168.160.134mha:192.168.160.135GRANTSUPER,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO‘replication_user‘@‘192.168.160.%‘IDENTIFIEDBY‘123456 查看详情

solr安装及使用示例(代码片段)

Solr安装初始化collection为数据创建索引运行查询附加错误解决其它翻译自ValidatingtheDeploymentwiththeSolrRESTAPI,在CDH集群上进行如下步骤。Solr安装在ClouderaManagerServer的控制台界面,直接点击“AddService”,找到Solr,将其... 查看详情

mac安装swoole可能会出现的错误(代码片段)

请先看完之后再操作一、用pecl安装swoole(没有安装起来)2018年4月,由于homebrew的变动,导致无法使用brewinstall的方式安装php的扩展,现在改为用pecl安装,pecl安装swoole的方法为:peclinstallswoole出现在选项要填yes还是no,这篇文章有写... 查看详情

swoole学习:初识swoole(代码片段)

...PHP的拓展,类似于php_mbstring.dll、php_redis.dll等拓展。二、安装:  swoole的安装有:源码编译安装跟命令行安装。以上两种本人都尝试过,当然,源码编译安装更可以深入了解一个扩展是如何生成的过程,命令行安装就显得过于... 查看详情

centos7编译安装swoole(代码片段)

Centos7编译安装Swoole下载安装前准备需要的一些依赖有些同学可能之前没有使用过,这里作为前提条件进行安装设置.如果已将安装好的同学直接跳到下一步.大前提是安装了PHP,且版本要>=7.2#需要使用wget下载文件yuminstallwgetyuminstall... 查看详情

pythoncv2安装及测试(代码片段)

pythoncv2安装及测试​由于数学建模国赛2013B题了解到opencv,遂记录一.安装1.参考教程pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleopencv-python👉参考教程链接​是看到评论区里的兄弟写的2.powershell安装3.检查是否装好piplistpiplist... 查看详情

hivellap服务安装说明及测试(代码片段)

 Hivellap服务安装说明及测试 参考:https://www.cnblogs.com/hdpdriver/p/7642729.html1.简介说明从Hive2.0引入了LLAP(LiveLongAndProcess),2.1进行了比较大的优化,可以说hive已经走向了内存计算,目前hortonworks测试llap+tez比hive1.x快了25倍,... 查看详情

tensorflow目标检测api安装及测试(代码片段)

1.环境安装配置1.1安装tensorflow  安装tensorflow不再仔细说明,但是版本一定要是1.91.2下载TensorflowobjectdetectionAPI   下载地址:https://github.com/tensorflow/models1.3 Protobuf 的安装与配置  (1)下载地址:https://github.com/goo... 查看详情