首页 > 作文

Linux下源码包安装Swoole及基本使用操作图文详解

更新时间:2023-04-07 09:33:00 阅读: 评论:0

本文实例讲述了linux下源码包安装swoole及基本使用操作。分享给大家供大家参考,具体如下:

下载swoole pecl扩展源码包:

关于php版本依赖选择:

下载好放到/usr/local/src下,解压缩:

tar -zxvf swoole-2.2.0.tgz

准备扩展安装编译环境:

phpize

查看php-config位置:

find / -name php-config

配置:(–with-php-config==后面是你自己的php-config位置)

./configure --with-php-config=/www/rver/php/72/bin/php-config

编译安装:

make && make install

在php.ini里面加一行 :

extension = swoole.so

使用 php -m 命令查看swoole扩展已经安装成功:

查看phpinfo信息:

(测试梯形体积前说明:以下使用的端口,要确认服务器放行,宝塔环境还需要添加安全组规则)

【创建tcp服务器】

创建rver.php:

<?php  //创建rver对象,监听 127.0.0.1:9501端口  $rv = new swoole_rver("127.0.0.1", 9501);    //监听连接进入事件  $rv->on('connect', function ($rv, $fd) {     echo "client: connect.\n";  });   //监听数据接收事件  $rv->on('receive', function ($rv, $fd, $from_id, $data) {    $rv->nd($fd, "rver: ".$data);  });   //监听连接关闭事件  $rv->on('clo', function ($rv, $fd) {    echo "client: clo.\n";  });   //启动服务器  $rv->start(); 

启动tcp服务:

php rver.php

查看9501端口已被监听:

netstat -an | grep 9501

使用telnet连接tcp服务,输入hello,服务器返回hello即测试成功:

telnet 127.0.0.1 9501

(如果telnet工具没有安装,执行yum install telnetyum install te吉林省招生办lnet-rver

也可以写一个tcp客户端连接tcp服务器端:

创建tcp_client.php:

<?php  //创建client对象,监听 127.0.0.1:9501端口  $client = new swoole_client(swoole_sock_tcp);   if(!$client->connect("127.0.0.1" ,9501)){echo "连接失败";exit;  }  //向tcp服务器发送消息  fwrite(stdout, "请输入:");  $msg = trim(fgets(stdin));  $client->nd($msg);  //接受tcp服务器消息  $result = $client->recv();  echo $result;

启动tcp客户端:

php tcp_client.php

测试结果:

【创建udp服务器】

创建udp_rver.php:

<?php  //创建rver对象,监听 127.0.0.1:9502端口,类型为swoole_sock_udp  $rv = new swoole_rver("127.0.0.1", 9502, swoole_process, swoole_sock_udp);   //监听数据接收事件  $rv->on('packet', function ($rv, $data, $clientinfo) {    $rv->ndto($clientinfo['address'], $clientinfo['port'], "rver ".$data);    var_dump($clientinfo);  });  //启动服务器  $rv->start(); 

启动udp服务:

php udp_rver.php

查看9502端口已被监听:

netstat -an | grep 9502

使用netcat连接udp服务,输入hello,服务器返关于植物的作文300字回hello即测试成功(centos):

nc -u 127.0.0.1 9502

(如果没有安装netcat监听器,执行yum install -y nc

【创建web服务器】

创建http_rver.php:

<?php  $http = new swoole_http_rver("0.0.0.0", 9501);    //配置静态文件根目录(可选)  $http->t([    'document_root' => '/www/wwwroot/lwsblog',    'enable_static_handler' => true,  ]);  $http->on('request', function ($request, $respon) {    var_dump($request->get, $request->post);        //设置header    $respon->header("content-type", "text/html; char团队精神的金句t=utf-8");    //设置cookie    $respon->cookie("name", "lws", time()+3600);    //发送http响应体,并结束请求处理。    $respon->end("<h1>hello swoole. #".rand(1000, 9999)."</h1>");  });  $http->start();

启动服务:

php http_rver.php

(如果9501端口已经被占用查看进程pid,杀死进程:)

lsof -i:9501

kill 9013

浏览器访问主机地址:端口号,得到程序预期结果即测试成功:

【创建websocket服务器】

创建ws_rver.php:

<?php  //创建websocket服务器对象,监听0.0.0.0:9501端口  $ws = new swoole_websocket_rver("0.0.0.0", 9501);    //配置静态文件根目录(可选)  $ws ->t([    'document_root' => '/www/wwwroot/lwsblog',    'enable_static_handler' => true,  ]);  //监听websocket连接打开事件  $ws->on('open', function ($ws, $request) {    var_dump($request->fd, $request->get, $request->rver);    $ws->push($request->fd, "hello, welcome\n");  });  //监听websocket消息事件  $ws->on('message', function ($ws, $frame) {    echo "message: {$frame->data}\n";    $ws->push($frame->fd个性日志大全, "rver: {$frame->data}");  });  //监听websocket连接关闭事件  $ws->on('clo', function ($ws, $fd) {    echo "client-{$fd} is clod\n";  });  $ws->start();

运行程序:(这里还是要确认监听的端口没有被占用,如果被占用查看进程pid,杀死进程)

php ws_rver.php

前端页面js监听:(127.0.0.1改成你的主机地址)

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>websocket</title></head><body></body><script type="text/javascript">var wsrver = 'ws://127.0.0.1:9501';var websocket = new websocket(wsrver);websocket.onopen = function (evt) {  console.log("connected to websocket rver.");};websocket.onclo = function (evt) {  console.log("disconnected");};websocket.onmessage = function (evt) {  console.log('retrieved data from rver: ' + evt.data);};websocket.onerror = function (evt, e) {  console.log('error occured: ' + evt.data);};</script></html>

使用谷歌浏览器访问前端页面:

服务器端收到请求信息:

更多关于php相关内容感兴趣的读者可查看本站专题:《php扩展开发教程》、《php面向对象程序设计入门教程》、《php数学运算技巧总结》、《php数组(array)操作技巧大全》、《php数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家php程序设计有所帮助。

本文发布于:2023-04-07 09:32:58,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/48288e49756ffe6a14743f92940f7aeb.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Linux下源码包安装Swoole及基本使用操作图文详解.doc

本文 PDF 下载地址:Linux下源码包安装Swoole及基本使用操作图文详解.pdf

标签:服务器   端口   事件   测试
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图