Swoole扩展
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。
编译安装
Swoole
扩展是按照PHP
标准扩展构建的。使用phpize
来生成编译检测脚本,./configure
来做编译配置检测,make
进行编译,make install
进行安装。
- 请下载
releases
版本的swoole
,直接从github
主干上拉取最新代码可能会编译不过 - 如果当前用户不是
root
,可能没有PHP
安装目录的写权限,安装时需要sudo
或者su
- 如果是在
git
分支上直接git pull
更新代码,重新编译前务必要执行make clean
下载安装包:https://wiki.swoole.com/wiki/page/6.html
解压:进入/usr/local/swoole-2.2.0目录,然后执行下面命令
phpize
./configure
或者 ./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install
会在这个目录/usr/local/php-7.0.7/lib/php/extensions/no-debug-zts-20151012 生成swoole.so文件。
将改文件加入
php.ini和php-cli.ini
然后重启PHP,使用php -m就可以查看该扩展是否安装成功
出现标红的这个,就说么安装没有问题,那么php怎么调用了 ,使用下面简单的例子,就能明白服务端和客户端之间通信了
这个是服务端代码
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);
//监听连接进入事件
$serv->on('connect', function ($serv, $fd) {
echo "Client: Connect.\n";
});
//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
$serv->send($fd, "Server: ".$data);
});
//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
echo "Client: Close.\n";
});
//启动服务器
$serv->start();
下面可能通过php 运行这段代码
运行之后,相当于在当前窗户运行,你也可以让后台运行,为了方便查看服务端监控客户端的响应。就按如图运行就行
运行如图命令,会看到Client:Connect
如果这个时候断开窗口,服务端也会接受到Client:Close
当然这只是一个最基本的扩展安装和调用实例。
grep -ri "祥云" web_fe/
sed -i "s/祥云/降云/g" `grep -rl "祥云" web_fe`
ALTER TABLE `sec_acl_gwxt`.`user` CHANGE `username` `username` LONGTEXT NOT NULL COMMENT '用户名';
https://www.cnblogs.com/zhoading/p/11988882.html
yum install -y expect expect-devel tcl tcl-devel
pecl install expect-0.4.0
Create Table |
CREATE TABLE `device_qos_apply` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `dev_id` int(10) NOT NULL, `interface` varchar(50) NOT NULL COMMENT '接口', `direction` varchar(20) NOT NULL COMMENT '方向', `policy` varchar(50) DEFAULT NULL COMMENT '应用的policy', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `dev_id_interface_dir` (`dev_id`,`interface`,`direction`) ) ENGINE=InnoDB AUTO_INCREMENT=124383 DEFAULT CHARSET=utf8 |