hahn-admin/app/process/Websocket.php

46 lines
1.1 KiB
PHP
Raw Normal View History

2025-07-03 11:08:07 +08:00
<?php
/**
* Created by PhpStorm.
* User: zguangjian
* CreateDate: 2025/6/3 下午4:32
* Email: zguangjian@outlook.com
*/
namespace app\process;
use support\Request;
use Workerman\Connection\TcpConnection;
use Workerman\Timer;
class Websocket
{
//存储socket连接得用户
public static array $userList = [];
public function onConnect(TcpConnection $connection): void
{
$connection->send("connection success");
}
//连接成功后回调
public function onWebSocketConnect(TcpConnection $connection, \Workerman\Protocols\Http\Request $request): void
{
self::$userList[$connection->id] = $request->header('token');
}
public function onMessage(TcpConnection $connection, $data): void
{
$connection->send(json_encode(['time'=>time()]));
}
public function onClose(TcpConnection $connection): void
{
//断开连接 释放
unset(self::$userList[$connection->id]);
$connection->close();
}
private function getUserId(TcpConnection $connection)
{
return self::$userList[$connection->id];
}
}