热门标签 | 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;

    }



}



   



推荐阅读
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 使用雄辩的模型,您只需通过调用即可更新数据$model-update($data);但不幸的是,这并没有更新关系.如果您还想更新关系,则需要手动分配每个值并调用push()然后: ... [详细]
  • InterfaceAsSchematic接口就是大纲接口在开发程序的“骨架”时非常有用。在设计组件时,使用接口进行设计和讨论都是对你的团队有益处的。比如定义一个BillingNot ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 温馨提示:本信息由【金聪采编】搜集整理发布,版权归原作者及发布者所有,您如有异议请举报或者版权申诉。前言本文主要给大家介绍的是关于Lara ... [详细]
  • Hello,Ihavethiscode: ... [详细]
  • UncaughtTypeError:$().intlTelInputisnotafunctionIssueiscomingafterjq ... [详细]
  • php框架PHPixie与Laravel的比较
    版本系统这两个框架都是迭代非常快速的框架。它们都不同于symfony,后者的变化要慢得多,甚至2.7和3.0版本之间的差异也不是很大。但是,如果将其与Linux发行版进行比较,则Symfony类似于Debian,Laravel类似于Ubuntu,PHPixie类似于Arch。 ... [详细]
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社区 版权所有