__handlePropertyHandler(__CLASS__); } protected $prefix_fn = 'chat_fn'; protected $prefix_user = 'chat_user'; protected $prefix_user_info = 'userListInfo'; /** * 绑定fd和用户关系 * @param string $fid * @param int $userId * @param $run_id * @return void * @throws \RedisException */ public function bind(string $fid, int $userId, $run_id = SERVER_RUN_ID) { //站点通道+用户 $this->redis->hSet($run_id, $this->prefix_fn . $fid, $userId); //站点用户+通道 $this->redis->hSet($run_id, $this->prefix_user . $userId, $fid); } /** * 解绑通道和用户关系 * @param string $fid * @param int $userId * @param $run_id * @return void * @throws \RedisException */ public function unbind(string $fid, int $userId, $run_id = SERVER_RUN_ID) { $this->redis->hDel($run_id, $this->prefix_fn . $fid); $this->redis->hDel($run_id, $this->prefix_user . $userId); } /** * 通过FD获取userID * @param string $fid * @param $run_id * @return false|\Redis|string * @throws \RedisException */ public function findUser(string $fid, $run_id = SERVER_RUN_ID) { return $this->redis->hGet($run_id, $this->prefix_fn . $fid); } /** * 通过UserID 获取fd * @param int $userId * @param $run_id * @return false|\Redis|string * @throws \RedisException */ public function findFd(int $userId, $run_id = SERVER_RUN_ID) { return $this->redis->hGet($run_id, $this->prefix_user . $userId); } /** * 存储用户信息 * @param int $userId * @param array $data * @return void * @throws \RedisException */ public function setUserInfo(string $userId, array $data) { $this->redis->hSet($this->prefix_user_info, $userId, json_encode($data)); } /** * 获取用户信息 * @param int $userId * @return void * @throws \RedisException */ public function getUserInfo(string $userId) { $this->redis->hGet($this->prefix_user_info, $userId); } }