版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Linux下源码包安装Swoole及基本使用操作图文详解本文实例讲述了Linux下源码包安装Swoole及基本使用操作。分享给大家供大家参考,具体如下:
下载SwoolePECL扩展源码包:/package/swoole
关于PHP版本依赖选择:
下载好放到/usr/local/src下,解压缩:
tar-zxvfswoole-2.2.0.tgz
准备扩展安装编译环境:
phpize
查看php-config位置:
find/-namephp-config
配置:(--with-php-config==后面是你自己的php-config位置)
./configure--with-php-config=/www/server/php/72/bin/php-config
编译安装:
makemakeinstall
在php.ini里面加一行:
extension=swoole.so
使用php-m命令查看swoole扩展已经安装成功:
查看phpinfo信息:
(测试前说明:以下使用的端口,要确认服务器放行,宝塔环境还需要添加安全组规则)
【创建TCP服务器】
创建server.php:
//创建Server对象,监听:9501端口
$serv=newswoole_server("",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();
启动TCP服务:
phpserver.php
查看9501端口已被监听:
netstat-an|grep9501
使用telnet连接TCP服务,输入hello,服务器返回hello即测试成功:
telnet9501
(如果telnet工具没有安装,执行yuminstalltelnet、yuminstalltelnet-server)
也可以写一个TCP客户端连接TCP服务器端:
创建tcp_client.php:
//创建Client对象,监听:9501端口
$client=newswoole_client(SWOOLE_SOCK_TCP);
if(!$client-connect("",9501)){
echo"连接失败";
exit;
//向tcp服务器发送消息
fwrite(STDOUT,"请输入:");
$msg=trim(fgets(STDIN));
$client-send($msg);
//接受tcp服务器消息
$result=$client-recv();
echo$result;
启动tcp客户端:
phptcp_client.php
测试结果:
【创建UDP服务器】
创建udp_server.php:
//创建Server对象,监听:9502端口,类型为SWOOLE_SOCK_UDP
$serv=newswoole_server("",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();
启动UDP服务:
phpudp_server.php
查看9502端口已被监听:
netstat-an|grep9502
使用netcat连接UDP服务,输入hello,服务器返回hello即测试成功(CentOS):
nc-u9502
(如果没有安装netcat监听器,执行yuminstall-ync)
【创建Web服务器】
创建http_server.php:
$http=newswoole_http_server("",9501);
//配置静态文件根目录(可选)
$http-set([
'document_root'='/www/wwwroot/lwsblog',
'enable_static_handler'=true,
$http-on('request',function($request,$response){
var_dump($request-get,$request-post);
//设置header
$response-header("Content-Type","text/html;charset=utf-8");
//设置cookie
$response-cookie("name","lws",time()+3600);
//发送Http响应体,并结束请求处理。
$response-end("h1HelloSwoole.#".rand(1000,9999)."/h1
$http-start();
启动服务:
phphttp_server.php
(如果9501端口已经被占用查看进程PID,杀死进程:)
lsof-i:9501
kill9013
浏览器访问主机地址:端口号,得到程序预期结果即测试成功:
【创建WebSocket服务器】
创建ws_server.php:
//创建websocket服务器对象,监听:9501端口
$ws=newswoole_websocket_server("",9501);
//配置静态文件根目录(可选)
$ws-set([
'document_root'='/www/wwwroot/lwsblog',
'enable_static_handler'=true,
//监听WebSocket连接打开事件
$ws-on('open',function($ws,$request){
var_dump($request-fd,$request-get,$request-server);
$ws-push($request-fd,"hello,welcome\n");
//监听WebSocket消息事件
$ws-on('message',function($ws,$frame){
echo"Message:{$frame-data}\n";
$ws-push($frame-fd,"server:{$frame-data}");
//监听WebSocket连接关闭事件
$ws-on('close',function($ws,$fd){
echo"client-{$fd}isclosed\n";
$ws-start();
运行程序:(这里还是要确认监听的端口没有被占用,如果被占用查看进程PID,杀死进程)
phpws_server.php
前端页面js监听:(改成你的主机地址)
!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"
htmlxmlns="/1999/xhtml"
head
titleWebSocket/title
/head
body
/body
scripttype="text/javascript"
varwsServer='ws://:9501';
varwebsocket=newWebSocket(wsServer);
websocket.onopen=function(evt){
console.log("ConnectedtoWebSocketserver.");
websocket.onclose=function(evt){
console.log("Disconnected");
websocket.onmessage=function(evt){
console.log('Retrieveddatafromserver:'+evt.data);
websocket.onerror=function(evt,e){
console.log('Erroroccured:'+evt.data);
/script
/html
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届迪庆市重点中学中考猜题物理试卷含解析
- 2026届四川省蓬安县重点达标名校中考物理全真模拟试题含解析
- 做账实操-学校的成本核算
- 2026年贵州省安顺市重点达标名校中考物理押题卷含解析
- 2026年山东省济南市历下区中考物理最后冲刺模拟试卷含解析
- 中职护理护理职业素养培养课件
- 中风急性期护理概述
- 招标管理制度
- 2026春苏科版三年级下册信息技术期末练习卷及答案
- 【泉州提线木偶戏本土市场深化路径研究16000字(论文)】
- 2026年全国保密教育线上培训考试试题及完整附答案
- 初三道德与法治中考复习:开放性设问之倡议书、标语与活动方案专项突破教案
- 2025年合肥高新区社区工作者招聘考试试卷真题
- 中国胃肠间质瘤诊疗指南(2025版)
- 北京市石景山区2026年5月初三综合练习(二模)语文试卷(含答案)
- 2026福建漳州水仙药业股份有限公司招聘14人考试备考题库及答案解析
- 2026河南开封工程职业学院招聘57人笔试备考试题及答案解析
- 2026年安徽省检察机关招聘书记员考试真题
- 2025年荣耀AI隐私安全白皮书
- 2026届山东省聊城市临清市重点达标名校中考押题生物预测卷含解析
- 2026年高考(湖南卷)化学试题及答案
评论
0/150
提交评论