文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

thinkphp6如何使用swoole服务

2023-09-07 05:42

关注

安装thinkphp6

composer create-project topthink/think=6.0.x-dev tp

安装think-swoole的扩展库

composer require topthink/think-swoole

注:think-swoole安装很困难,需要先给PHP安装swoole扩展,然后删除PHP禁用的函数(具体那些禁用的函数需要删除,安装会报错,报错里有提示有删除那些禁用的函数),最后安装网速特别慢可能导致安装不上,建议在香港服务器上安装。

修改conflg文件夹下的swoole.php文件下的配置参数

['host']=>'0.0.0.0'['port']=>'9502'//这是端口,可自行决定用哪个端口。

在swoole.php文件中引入文件

use app\websocket\privater\Handler;use app\websocket\privater\Packet;

修改参数

'handler'       => Handler::class,'parser'        => Parser::class,

Handler.php文件源码如下

namespace app\websocket\privater;use Swoole\Server;use Swoole\Websocket\Frame;use Swoole\WebSocket\Server as WebsocketServer;use think\Config;use think\Request;use think\swoole\contract\websocket\HandlerInterface;//Handler全部返回false,将逻辑全部交给WebsocketEvent处理class Handler implements HandlerInterface{        protected $server;        protected $config;    public function __construct(Server $server, Config $config)    {        $this->server = $server;        $this->config = $config;    }        public function onOpen($fd, Request $request)    {        //交给Connect监听处理        return false;    }        public function onMessage(Frame $frame)    {        //返回false触发全局监听        return false;    }        public function onClose($fd, $reactorId)    {        return false;    }}

Parser.php文件源码如下

namespace app\websocket\privater;use think\swoole\contract\websocket\ParserInterface;class Parser implements ParserInterface{        public function encode(string $event, $data)    {        return json_encode(['event' => $event, 'data' => $data], 320);    }        public function decode($frame)    {        $payload = Packet::getPayload($frame->data);        return [            'event' => $payload['event'] ?? null,            'data' => $payload['data'] ?? null,        ];    }}

Handler.php用于websocket事件的响应,如open/message等.必要文件

Parser .php用于消息体的解析,这里使用的格式为json,若换成其他通讯格式只要下对encode/decode编解码方法重写即可.必要文件

配置完成了

在项目根目录下执行以下命令启动swoole

php think swoole start

执行如下命令重启swoole

php think swoole restart

执行如下命令停止swoole

php think swoole stop

到这里,swoole的配置,启动,重新,停止。就写完了,具体的项目需求还需要你自己在Handler.php文件里修改项目需求。

来源地址:https://blog.csdn.net/weixin_46704937/article/details/127009980

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯