46 lines
1.1 KiB
PHP
46 lines
1.1 KiB
PHP
<?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];
|
|
}
|
|
} |