config.swoole.php
'websocket' => [
'enable' => true,
'handler' => Handler::class,
'parser' => Parser::class,
'ping_interval' => 25000,
'ping_timeout' => 60000,
'room' => [
'type' => 'table',
'table' => [
'room_rows' => 4096,
'room_size' => 1024 * 100,
'client_rows' => 8192,
'client_size' => 1024,
],
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'max_active' => 3,
'max_wait_time' => 5,
],
],
'listen' => [],
'subscribe' => [],
],
其中有 room 配置项,里面的 type 表示使用哪种数据处理方式,下面有两种,“table” 和“redis”,table 是可以直接拿来使用的,而 redis 则需要我们的系统和项目中安装了 redis 扩展。table 是一种高性能、跨进程的内存处理服务,不同进程间可以共享数据。
创建事件
在项目根目录输入如下命令,分别创建加入房间事件、离开房间事件和房间的聊天事件:
php think make:listener WsJoin
php think make:listener WsLeave
php think make:listener WsRoom
然后在 app/event.php 中定义事件:
[
],
'listen' => [
'AppInit' => [],
'HttpRun' => [],
'HttpEnd' => [],
'LogLevel' => [],
'LogWrite' => [],
//监听连接,swoole 事件必须以 swoole 开头
'swoole.websocket.Connect' => [
app\listener\WsConnect::c

文章介绍了如何配置Swoole的WebSocket服务,包括启用WebSocket、设置处理器和解析器,以及`table`和`redis`两种数据处理方式。此外,文章详细讲解了创建和定义加入房间、离开房间及聊天事件的监听器,以及如何在`swoole.websocket`配置中设置监听事件。同时,提到了使用Redis扩展的情况,并展示了监听器和订阅类的代码示例。
最低0.47元/天 解锁文章





