首页 > 编程语言 >thinkphp8扩展think-swoole4.0

thinkphp8扩展think-swoole4.0

时间:2024-03-05 15:02:35浏览次数:28  
标签:thinkphp8 websocket socket swoole event swoole4.0 data think

配置文件 config/swoole.php

<?php
//默认\think\swoole\websocket\Handler::class,
use think\swoole\websocket\socketio\Handler;
return [
    'http'       => [
        'enable'     => true,//开启
        'host'       => '0.0.0.0',
        'port'       => 9501,
        'worker_num' => swoole_cpu_num(),
        'options'    => [],
    ],
    'websocket'  => [
        'enable'        => true,//开启
        'handler'       => Handler::class,
        'ping_interval' => 25000,
        'ping_timeout'  => 60000,
        'room'          => [
            'type'  => 'table',
            'table' => [
                'room_rows'   => 8192,
                'room_size'   => 2048,
                'client_rows' => 4096,
                'client_size' => 2048,
            ],
            'redis' => [
                'host'          => '127.0.0.1',
                'port'          => 6379,
                'max_active'    => 3,
                'max_wait_time' => 5,
            ],
        ],
        'listen'        => [
			'event' => \app\listener\WebsocketTest::class,//事件监听
			
		],
        'subscribe'     => [],
    ],
   
];

事件监听app\listener\WebsocketTest

<?php
declare (strict_types = 1);
namespace app\listener;
use think\Container;
use think\swoole\Websocket;

class WebsocketTest
{
	public $websocket = null;
	public function __construct(Container  $container){
		$this->websocket = $container->make(Websocket::class);
	}
	/**
	 * 事件监听处理
	 * @param $event
	 */
	public function handle($event)
	{
		$func = $event->type;
		$this->$func($event);
	}
	
	/**
	 * 测试类型
	 * @param $event
	 */
	public function test($event)
	{
		$msg = json_encode($event->data,256);
		$this->websocket->emit('callback', $msg);
	}
}

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.socket.io/socket.io-1.4.4.js"></script>
</head>
<body>
<script>
    var socket = io('http://IP:9501',{transports: ['websocket']});
    //对应事件 以及消息
    socket.emit("test",{"asd":"我是内容"})
    //回调事件
    socket.on('callback',(data)=>{
        console.log('data',data);
    });
</script>
</body>
</html>



启动swoole

php think swoole

标签:thinkphp8,websocket,socket,swoole,event,swoole4.0,data,think
From: https://www.cnblogs.com/douyuanjun/p/18053789

相关文章

  • ThinkPHP6实现增删改查接口
    ThinkPHP增删改查接口实现数据库连接配置当.env文件中存在数据库配置时,这些配置会覆盖config/database.php中的相应配置。在config/database.php中设置数据库连接的默认值或开发环境的值,并在.env文件中根据实际部署环境(如测试或生产环境)覆盖这些值。这样,你可以通过更改环境变量......
  • Thinkphp
    官网https://www.thinkphp.cn/docComposerComposer是PHP的一个依赖管理工具,它允许你声明项目所需的库依赖,并且会为你安装它们。在许多方面,它与其他编程语言中的包管理工具类似,例如Node.js的npm或者Python的pip。使用Composer可以使PHP开发变得更加高效、组织化,并......
  • ThinkPad E560清理风扇积灰
    ThinkPadE560最近风扇嗡嗡响,距离上次清理过去很长时间了,这次准备自己动手清理,上次去店里清理花了100多好像,能省一点是一点,开整在网上买了润滑脂和7921导热硅脂一共加一起来30块钱。润滑脂最后没用上,因为风扇不可拆卸,也没有加润滑脂的口。先拆后盖,螺丝记得放好,我拆开后发现有些......
  • think-cell Round 1
    Preface这场一周前打的了,结果因为每天都有训练一直拖到今天才有时间补前期虽然有点犯病但一直到D2出题都还算稳,然后看到E题经典数数题就走不动路了直接投降后面请徐神来救场才堪堪会做,可惜最后推出优化的式子后比赛已经结束10min了不够好在是手速够快没有掉分,感觉现在就是前面......
  • think-cell Round 1 题解 (A~F)
    think-cellRound1.目录A.MaximiseTheScore排序后输出所有奇数位之和.B.PermutationPrinting\(1,n,2,n-1\cdots\).C.LexicographicallyLargest注意到对于一个\(a_i\)来说\([a_i+1,a_i+i]\)中的所有数都可以被选中,那么问题变给若干区间,每个区间选一个数要......
  • think-cell Round 1
    叮!你的橙名体验卡已到期~Asort以后,是奇数项之和。Code#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ ios::sync_with_stdio(false); cin.tie(0); intt; cin>>t; while(t--){ intn; cin>>n; vector<ll>v(n......
  • debian12手动控制thinkpad风扇转速
    配置驱动添加如下配置文件,并重启系统~✘cat/etc/modprobe.d/thinkpad_acpi.confoptionsthinkpad_acpifan_control=1~✘配置确认驱动加载~✘lsmod|grepthinkpad_acpithinkpad_acpi1392640nvram163841thinkpad_acpip......
  • ThinkPHP 6.0 SQL注入漏洞修复
    公司买的官网被政府网安检测出SQL注入漏洞:隐患描述SQL漏洞证明语句: python3sqlmap.py-u"http://xxxx?keywords=1"-pkeywords--level=5--risk=3--tamper=space2comment.py,between.py--current-db--random-agent--time-sec=10--batch--dbms="MySQL"漏洞回显:权......
  • TP框架 之think-auth权限认证
    一、安装think-authcomposerrequire5ini99/think-auth二、数据表-- ------------------------------ think_auth_rule,规则表,-- id:主键,name:规则唯一标识, title:规则中文名称 status 状态:为1正常,为0禁用,condition:规则表达式,为空表示存在就验证,不为空表示按照条件验......
  • thinkphp8开发简要流程
    安装,根据PHP的版本安装适合的版本composercreate-projecttopthink/thinktp开启多应用模式composerrequiretopthink/think-multi-app创建应用phpthinkbuildadminnginx配置伪静态,把下面的内容保存为nginx.htaccess文件放到应用入口public文件的同级目录下location......