热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swoole怎么与TP,laravel这些框架适配?我这种适配方式对吗?

关于tp的think-swoole 用过了 感觉怪怪的. 有些问题 然后再网上找的了 其他的适配方式请问一下这种适配方式能用吗? 有没有更好的 还是说 用基于swoole 开发的框架 贴代码1234

关于tp的think-swoole 用过了 感觉怪怪的. 有些问题 然后再网上找的了 其他的适配方式
请问一下这种适配方式能用吗? 有没有更好的 还是说 用基于swoole 开发的框架
贴代码



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97

namespace app\Console;



use think\console\Command;

use think\console\Input;

use think\console\Output;



class AsyncTask extends Command

{

    protected $server;



    // 命令行配置函数

    protected function configure()

    {

        // setName 设置命令行名称

        // setDescription 设置命令行描述

        $this->setName('task:start')->setDescription('Start Task Server!');

    }



    // 设置命令返回信息

    protected function execute(Input $input, Output $output)

    {

        $this->server = new \swoole_server('0.0.0.0', 9509);



        // server 运行前配置

        $this->server->set([

            'worker_num'      => 4,

            'daemonize'       => false,

            'task_worker_num' => 4  # task 进程数

        ]);



        // 注册回调函数

        $this->server->on('Start', [$this, 'onStart']);

        $this->server->on('Connect', [$this, 'onConnect']);

        $this->server->on('Receive', [$this, 'onReceive']);

        $this->server->on('Task', [$this, 'onTask']);

        $this->server->on('Finish', [$this, 'onFinish']);

        $this->server->on('Close', [$this, 'onClose']);

        $this->server->on('Message', [$this, 'onMessage']);



        $this->server->start();

    }



    // 主进程启动时回调函数

    public function onStart(\swoole_server $server)

    {

        echo "Start\n";

    }



    // 建立连接时回调函数

    public function onConnect(\swoole_server $server, $fd, $from_id)

    {



        echo "$fd 连接了\n";

    }



    // 收到信息时回调函数

    public function onReceive(\swoole_server $server, $fd, $from_id, $data)

    {

        echo $data.PHP_EOL;

        //print_r($data);



        // 投递异步任务

        //$task_id = $server->task($data);

      //  echo "Dispath AsyncTask: id={$task_id}\n";



        // 将受到的客户端消息再返回给客户端

       // $server->send($fd, "Message form Server: {$data}, task_id: {$task_id}");

    }



    // 异步任务处理函数

    public function onTask(\swoole_server $server, $task_id, $from_id, $data)

    {

        echo "{$task_id}, Task Completed \n";



        //返回任务执行的结果

        $server->finish("$data -> OK");

    }



    // 异步任务完成通知 Worker 进程函数

    public function onFinish(\swoole_server $server, $task_id, $data)

    {

        echo "AsyncTask[{$task_id}] Finish: {$data} \n";

    }



    // 关闭连时回调函数

    public function onClose(\swoole_server $server, $fd, $from_id)

    {

        echo "Close\n";

    }



    public function onMessage($server, $frame)

    {

        echo $frame->data.PHP_EOL;

    }



}



   



推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
author-avatar
小角落哭泣的身影
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有