国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

一個簡單的 Gateway Events 事件處理代碼片段分享

= - =

論壇:https://laravel-workerman.iwnweb.com/d/9-gateway-events

<?php

abstract class AbstractEvent
{
    protected $eventType;

    public function handle($connection, array $event)
    {
        if ($this->eventType !== $event['event_type']) {
            return;
        }

        $this->handleEvent($connection, $event);
    }
}

class LoginEvent extends AbstractEvent
{
    protected $eventType = 'user.login';

    public function handleEvent($connection, $event)
    {
        // handle user login event
    }
}

class JoinRoomEvent extends AbstractEvent
{
    protected $eventType = 'room.join';

    public function handleEvent($connection, $event)
    {
        // handle user join room event
    }
}

class Factory
{
    // protected static $eventType = [
    //     'login' => Login::class,
    //     'room.join' => RoomJoin::class,
    // ];

    // public static function make(array $data)
    // {
    //     $className = static::$eventTypeMap[$data['event_type']];

    //     $class = new $className();

    //     return $class;
    // }

    public static function make(array $event)
    {
        $eventTypePart = explode('.', $event['event_type']);

        $ucfirstEventTypePart = array_map('ucfirst', $eventTypePart);

        $className = implode('', $ucfirstEventTypePart);

        $class = "\\App\\Services\\{$className}";

        // validate class exists

        return new $class;
    }
}

class Events
{
    // protected $eventType = [
    //     'login' => Login::class,
    //     'room.join' => RoomJoin::class,
    // ];

    // public function onMessage($connection, string $event)
    // {
    //     $data = json_decode($event, true) ?? [];

    //     // event validate

    //     $className = $this->eventTypeMap[$data['event_type']];

    //     $class = new $className();

    //     $class->handle($connection, $data);
    // }

    // public function onMessage($connection, string $event)
    // {
    //     $data = json_decode($event, true) ?? [];

    //     // event validate

    //     foreach ($this->eventType as $eventName => $eventHandle) {
    //         $handle = new $eventHandle();

    //         $handle->handle($connection, $data);
    //     }
    // }

    public function onMessage($connection, string $event)
    {
        $data = json_decode($event, true) ?? [];

        // event validate

        $eventHandle = Factory::make($data);

        $eventHandle->handle($connection, $data);
    }
}
1339 0 1
0個評論

年代過于久遠,無法發(fā)表評論

= - =

1660
積分
0
獲贊數(shù)
0
粉絲數(shù)
2021-12-15 加入
??