具体代码如下所示:
redis = new Redis();
$this -> redis -> connect('127.0.0.1', '6379');
$this -> redis -> auth('***cnblogs.com/handle');
}
public function setChatRecord($from, $to, $message) {
$data = array('from' => $from, 'to' => $to, 'message' => $message, 'sent' => time());
$value = json_encode($data);
//生成json字符串
$keyName = 'rec:' . $this -> getRecKeyName($from, $to);
//echo $keyName;
$res = $this -> redis -> lPush($keyName, $value);
if (!$this -> checkUserReadable) {//消息接受者无法立刻查看时,将消息设置为未读
$this -> cacheUnreadMsg($from, $to);
}
return $res;
}
public function getChatRecord($from, $to, $num) {
$keyName = 'rec:' . $this -> getRecKeyName($from, $to);
//echo $keyName;
$recList = $this -> redis -> lRange($keyName, 0, (int)($num));
return $recList;
}
public function getUnreadMsgCount($user) {
return $this -> redis -> hGetAll('unread_' . $user);
}
public function getUnreadMsg($from, $to) {
$countArr = $this -> getUnreadMsgCount($to);
$count = $countArr[$from];
$keyName = 'rec:' . $this -> getRecKeyName($from, $to);
return $this -> redis -> lRange($keyName, 0, (int)($count));
}
public function setUnreadToRead($from, $to) {
$res = $this -> redis -> hDel('unread_' . $to, $from);
return (bool)$res;
}
private function cacheUnreadMsg($from, $to) {
return $this -> redis -> hIncrBy('unread_' . $to, $from, 1);
}
private function getRecKeyName($from, $to) {
return ($from > $to) ? $to . '_' . $from : $from . '_' . $to;
}
}
?>
总结
以上所述是小编给大家介绍的php redis 处理websocket聊天记录的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!



