container->get(\Redis::class); // 获取所有的客户端id $fdList = $redis->sMembers('websocket_sjd_1'); // 如果当前客户端在客户端集合中,就刷新 if (in_array($frame->fd, $fdList)) { $redis->sAdd('websocket_sjd_1', $frame->fd); $redis->expire('websocket_sjd_1', 7200); } // push消息给客户端 $server->push($frame->fd, json_encode(['Recv' => $frame->data])); } /** * 客户端失去连接 * @param $server * @param int $fd * @param int $reactorId */ public function onClose($server, int $fd, int $reactorId): void { $redis = $this->container->get(\Redis::class); // 移除集合中指定的value $redis->sRem('websocket_sjd_1', $fd); echo 'closed'; } /** * 客户端连接开启 * @param $server * @param Request $request */ public function onOpen($server, Request $request): void { $redis = $this->container->get(\Redis::class); // 保存客户端id $resAdd = $redis->sAdd('websocket_sjd_1', $request->fd); var_dump($resAdd); $resExp = $redis->expire('websocket_sjd_1', 7200); var_dump($resExp); // push消息给客户端 $server->push($request->fd, json_encode(['Status' => 'Opened'])); } }