Skip to content

Commit cd89a7c

Browse files
committed
fix websocket
1 parent 1c5cd21 commit cd89a7c

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

laravel/app/Services/WebSocketService.php

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,40 @@ public function onOpen(Server $server, Request $request)
4747
$action = $req['action'] ?? '';
4848
switch ($action) {
4949
case 'api_excel': // api_excel 列表完成率
50-
while (true) {
51-
$user_id = $userInfo['id'];
52-
$server->push($request->fd, $this->apiExcel($user_id));
53-
sleep(5);
54-
$state = ApiExcel::where('state', 1)->first();
55-
if (!$state) {
56-
$server->push($request->fd, $this->apiExcel($user_id));
57-
break;
58-
}
59-
// 每个用户 fd 限制请求次数
60-
$redisKey = 'websocket_fd_'.$request->fd;
61-
if (empty($this->redis)) {
62-
$this->redis = Redis::connection();
63-
}
64-
// 如果获取不到 redis 实例,使用总计数次数
65-
if ($this->redis) {
66-
$count = $this->redis->incr($redisKey);
67-
if ($count == 1) {
68-
// 设置过期时间
69-
$this->redis->expire($redisKey, 6000);
70-
}
71-
if ($count > 20000) { // 防止刷单的安全拦截
72-
break; // 超出就跳出循环
73-
}
74-
} else {
75-
$count_fd = 'count_'.$request->fd;
76-
$this->incrKey($count_fd);
77-
// 单fd超过 1000 次跳出循环
78-
if ($this->$count_fd > 1000) {
79-
unset($this->$count_fd);
80-
break;
81-
}
82-
}
83-
}
50+
$user_id = $userInfo['id'];
51+
$server->push($request->fd, $this->apiExcel($user_id));
52+
// while (true) {
53+
// sleep(5);
54+
// $state = ApiExcel::where('state', 1)->first();
55+
// if (!$state) {
56+
// $server->push($request->fd, $this->apiExcel($user_id));
57+
// break;
58+
// }
59+
// // 每个用户 fd 限制请求次数
60+
// $redisKey = 'websocket_fd_'.$request->fd;
61+
// if (empty($this->redis)) {
62+
// $this->redis = Redis::connection();
63+
// }
64+
// // 如果获取不到 redis 实例,使用总计数次数
65+
// if ($this->redis) {
66+
// $count = $this->redis->incr($redisKey);
67+
// if ($count == 1) {
68+
// // 设置过期时间
69+
// $this->redis->expire($redisKey, 6000);
70+
// }
71+
// if ($count > 20000) { // 防止刷单的安全拦截
72+
// break; // 超出就跳出循环
73+
// }
74+
// } else {
75+
// $count_fd = 'count_'.$request->fd;
76+
// $this->incrKey($count_fd);
77+
// // 单fd超过 1000 次跳出循环
78+
// if ($this->$count_fd > 1000) {
79+
// unset($this->$count_fd);
80+
// break;
81+
// }
82+
// }
83+
// }
8484
}
8585
return '';
8686

0 commit comments

Comments
 (0)