本文目錄一覽:
- 1、怎樣使用php設置站內信功能,有什麼函數么?
- 2、PHP站內信功能怎麼設計
- 3、php+mysql 站內信功能怎麼設計更合理?
- 4、php如何實現站內消息提示功能?
- 5、php 站內信提醒怎麼做???
怎樣使用php設置站內信功能,有什麼函數么?
這是個功能,不是一個函數能解決的,PHP也不存在這樣的功能,需要程序員編寫代碼開發。
首先要你需要建立一個資料庫表,用來存放站內信的相關信息,然後用戶使用站內信功能的時候去資料庫查詢和自己有關的站內信(比如說自己發送的,別人發給你的等等),這屬於比較簡單的功能開發。
PHP站內信功能怎麼設計
情況一:無需實時聊天
這種情況可以採用簡單粗暴的方法,資料庫直接讀寫消息記錄,已讀/未讀用一個狀態碼控制即可,稍微高級一點可以用Redis做消息推送,具體方法不作詳細介紹,百度一搜一大把
情況二:實時聊天
沿用以上笨辦法,web頁面做一個定時器,每隔一段時間請求資料庫;當然,Redis也可以輕鬆辦到。如果不嫌麻煩可以採用workerman框架,socket通信專為在線聊天和直播流設計的
php+mysql 站內信功能怎麼設計更合理?
這個功能,你可以參考微博的推送思路。
比如你關注了很多明星(千萬級大V),他們發的每條微博會進入到「我的首頁」。比如某個明星發了條微博abc,你在「我的首頁」里看到的”abc”並不是讀自明星微博個人的資料庫,而是來自「我的首頁」里一個專門的數據集合。
通俗的講,這個數據集合是完全屬於你個人的,你所關注的每個人,當他們發微博時,會同步「推送」到你自己個人的這個「數據集合」里。
那麼問題來了,千萬級大V,每發一條微博,就要同步推給千萬個粉絲,生成千萬條數據嗎?NO,微博根據用戶活躍度等一系列演算法,將用戶分成不同梯隊,一批一批的推送,例如一個近30天都沒登錄過的用戶,自然就會被划到較遲推送的那一批里。這樣做是為了分流伺服器負擔。
但不同產品對於數據設計有不同的思路,你這個公用一條站內信,我的建議是,建個公共站內信統一變數(例如letter=20160514),可以保存到用戶的cookies里。
當用戶訪問頁面時,程序首先將這個變數值和cookies里保存的變數對比,相同則略過,不同則進行讀取相應的公共站內信,保存到自己的「收件箱」里。
這樣可以使原本需要同步推給千萬用戶一條站內信的工作,由主動推送變成被動發送。用戶上線訪問了,對比、發送,這種工作顯然要大大減小了伺服器壓力。
讀取消息也是,反饋生成一條數據寫到資料庫里就好了。
php如何實現站內消息提示功能?
1、全局js裡面,加定時ajax請求getmsg.php
2、在getmsg.php裡面,邏輯大致為:獲取新消息數據(含html、鏈接地址等),新消息在資料庫表中標識為舊消息,新消息數據寫為json格式並輸出,退出php。
php 站內信提醒怎麼做???
給你提供一個簡單的思路 !其實你的思路有些片面了 真正完善的做法 不應該是這樣的哦!
你可以建立兩張表 收信箱 發信箱! 當用戶A給用戶B 發送一個消息之後 同時對兩張表執行insert 操作!初始狀態為 未讀!
用戶B 只要實時的 用js去請求 一個固定的頁面 假使 此頁面定為 Msg.State.php (功能呢 主要是獲取當前用戶的消息數目 狀態等等便於 實時顯示) js設定時間 每20秒去請求一次 返回未顯示的消息數目 用於前台顯示
用戶B 查看消息的時候需要新開頁面 這個頁面暫定 check.msg.php 用於查看 消息 主要功能為更改消息狀態 刪除 未讀 已讀 下面主要是針對 消息狀態的處理了 用戶B 可以對用戶A的消息執行刪除操作 但系統消息不可被刪除 (可以處於刪除狀態) 當用戶B 查看消息的時候 將此消息標記為已讀 此時可以js 去再次請求 Msg.State.php頁面 傳出動作 update 去執行 update操作 更改消息狀態 並嘗試刷新 check.msg.php頁面
下面給出 js請求頁面的實現方法!至於實例化 ajax的對象我就不寫了
var ajax=null;
function show(){
var hello_obj=document.getElementById(“hello”);
ajax=createAjax();//初始化ajax對象
ajax.onreadyStateChange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
var data=ajax.responseText;
hello_obj.innerHTML=data;
}else{
alert(“頁面請求失敗”);
}
}
}
ajax.open(“post”,”Msg.State.php”,true);//打開伺服器 指定傳遞方式為post
ajax.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded “);這個是發送頁頭
ajax.send(“參數=用戶編號”);//發送數據
}
/script
input type=”button” onClick=”show()” value=”request”
div id=”hello” style=”width:500; height:200; background-color:#FFFF00″/div
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/292805.html