php redis 處理websocket聊天記錄

2022-06-20 07:48:09 字數 2408 閱讀 9362

<?php

ini_set('display_errors', 'on');

class

chatclass

/*傳送訊息時儲存聊天記錄

* 這裡用的redis儲存是list資料型別

* 兩個人的聊天用乙個list儲存

** @from 訊息傳送者id

* @to 訊息接受者id

* @meassage 訊息內容

** 返回值,當前聊天的總聊天記錄數

*/public

function setchatrecord($from, $to, $message

)

return

$res

; }

/** 獲取聊天記錄

* @from 訊息傳送者id

* @to 訊息接受者id

* @num 獲取的數量

** 返回值,指定長度的包含聊天記錄的陣列

*/public

function getchatrecord($from, $to, $num

)

/** 當使用者上線時,或點開聊天框時,獲取未讀訊息的數目

* @user 使用者id

** 返回值,乙個所有當前使用者未讀的訊息的傳送者和陣列

* 陣列格式為『訊息傳送者id』=>『未讀訊息數目』

**/public

function getunreadmsgcount($user

)

/** 獲取未讀訊息的內容

* 通過未讀訊息數目,在列表中取得最新的相應訊息即為未讀

* @from 訊息傳送者id

* @to 訊息接受者id

** 返回值,包括所有未讀訊息內容的陣列**

*/public

function getunreadmsg($from, $to

)

/** 將訊息設為已讀

* 當乙個使用者開啟另乙個使用者的聊天框時,將所有未讀訊息設為已讀

* 清楚未讀訊息中的快取

* @from 訊息傳送者id

* @to 訊息接受者id

** 返回值,成功將未讀訊息設為已讀則返回true,沒有未讀訊息則返回false

*/public

function setunreadtoread($from, $to

)

/* *

* @from 傳送訊息的使用者id

* @to 接收訊息的使用者id

** 返回值,當前兩個使用者聊天中的未讀訊息

**/private

function cacheunreadmsg($from, $to

)

/*生成聊天記錄的鍵名,即按大小規則將兩個數字排序

* @from 訊息傳送者id

* @to 訊息接受者id**

*/private

function getreckeyname($from, $to) }

/** 下面為測試用的** ,偽造資料模擬場景

* 假定有兩個使用者id為2和3 ,2 向 3 傳送訊息

*$chat = new chatclass();

$chat -> checkuserreadable = true;

for ($i = 0; $i < 20; $i++)

echo 'get 20 chat records

';$arr = $chat -> getchatrecord('2', '3', 20);

for ($j = 0; $j < count($arr); $j++)

$chat -> checkuserreadable = false;

for ($m = 0; $m < 5; $m++)

echo "

";$umsg_1 = $chat -> getunreadmsgcount(3);

echo "unread message counts ";

echo "

";print_r($umsg_1);

echo "unread message content

";$umsgcontent = $chat -> getunreadmsg(2, 3);

for ($n = 0; $n < count($umsgcontent); $n++)

echo "

";$chat -> setunreadtoread(2, 3);

$umsg_2 = $chat -> getunreadmsgcount(3);

echo "

";echo "unread message counts ";

echo "

";print_r($umsg_2);**/

?>

php redis擴充套件編譯

php redis 擴充套件編譯 1 到pecl.php.net 搜尋redis 2 stable版 穩定版 擴充套件 3 解壓,4 執行 php path bin phpize 作用是檢測 php的核心版本 並為擴充套件生成相應的編譯配置 5 configure with php config p...

php redis 併發控制

針對併發控制可以使用 memcacheq redis channle 等方式處理 這裡我單單的說一下redis 怎麼去控制併發 redis控制併發主要採用 redis list api 中的 lpush llen lpop 這三個函式 llen 獲得列表的長度 lpop 刪除列表的第乙個值並返回它 ...

php redis 擴充套件安裝

redis 手冊 風來了.fox windows 下擴充套件安裝 例如 php redis 2.2.5 5.6 nts vc11 x64.zip 解壓縮得到 php redis.dll 放到 php ext 目錄下 編輯 php php.ini 在裡面加入 extension php redis.d...