perf: 优化ws连接机制

This commit is contained in:
kuaifan
2023-02-22 19:26:56 +08:00
parent 50a6b91a7e
commit db5bcfb683
5 changed files with 15 additions and 24 deletions

View File

@@ -191,13 +191,15 @@ class WebSocketService implements WebSocketHandlerInterface
*/
private function saveUser($fd, $userid)
{
Cache::put("User::fd:" . $fd, "on", Carbon::now()->addDay());
Cache::put("User::online:" . $userid, "on", Carbon::now()->addDay());
//
WebSocket::updateInsert([
'key' => md5($fd . '@' . $userid)
], [
'fd' => $fd,
'userid' => $userid,
]);
Cache::put("User::online:" . $userid, time(), Carbon::now()->addSeconds(30));
}
/**
@@ -206,6 +208,8 @@ class WebSocketService implements WebSocketHandlerInterface
*/
private function deleteUser($fd)
{
Cache::forget("User::fd:" . $fd);
//
$array = [];
WebSocket::whereFd($fd)->chunk(10, function($list) use (&$array) {
/** @var WebSocket $item */
@@ -216,6 +220,7 @@ class WebSocketService implements WebSocketHandlerInterface
User::whereUserid($item->userid)->update([
'line_at' => Carbon::now()
]);
Cache::forget("User::online:" . $item->userid);
}
if ($item->path && str_starts_with($item->path, "/single/file/")) {
$array[$item->path] = $item->path;