客服用戶聊天系統源碼Demo


靜態H5聊天對話框html源碼客服系統代碼(3)

此程序 可用作客戶與客服聊天使用,也可以作為app程序嵌入的聊天功能或者站內聊天使用的代碼。運行視頻效果:

鏈接: https://pan.baidu.com/s/1lMbXgY3rVRw4ZFfwePJOTw 提取碼: bfyh  

靜態H5聊天輸入對話框html代碼(1)

靜態H5聊天輸入對話框html代碼(2)

 

上節講了消息對話如何實現,上節規划中是來如何實現做到推送實時刷新,看了bass的接口,如果要做到這樣的效果必須要先開通99月每月的套餐才能使用其數據庫監聽的功能

我一看,暫時每用這個付費的套餐,我打算先用 輪詢刷新的方式實現這個功能,輪詢的話,暫定5秒。也就是說5秒刷新一次。

直接上代碼:

function getMsgFromServer(fromTime){ const query = Bmob.Query("ChatContent"); query.containedIn("fromDeviceID", [""+fromDeviceID,""+toDeviceID]); query.containedIn("toDeviceID", [""+fromDeviceID,""+toDeviceID]); query.limit(300); if(fromTime != null){ query.equalTo("createdAt",">",fromTime); query.equalTo("objectId","!=",unusedCheckMsgObjectid); } query.order("-createdAt"); //query.or(query1, query2); query.find().then(res => { console.log(res) for(var i = res.length-1; i >=0; i--) { startCheckMsgTime = res[0].createdAt; unusedCheckMsgObjectid = res[0].objectId; if(res[0].objectId ==(unusedCheckMsgObjectid1)){ continue; } var item = res[i]; AddMsg(item.fromDeviceID,item.toDeviceID, item.createdAt,SendMsgDispose(item.content)); } }); }

上面代碼就是刷新的業務,剛剛進來時候 刷出歷史消息。

刷新后然后記錄上次刷新的時間,然后 從這個時間點往后刷新。比如下午2點刷新到消息后,記錄下這個時間,然后5秒刷新一次。如果沒刷新到消息,繼續按這個時間刷新,如果刷新到新的消息,則重新把起始的時間設置過去,以此為起點。

這樣做的好處就是避免查詢到相同的消息,重復顯示出來。

如果是使用付費的套餐業務,需要99一個月,可以通過長鏈接的方式監聽服務器的變化,比如某一行修改或者被刪除,客戶端都能收到回調。這個套餐目前是99月,老實說也不算貴,如果用戶起來的話。

用於一多,很多長連接,這種bass起始也難吃得消,可能需要開其他的套餐,規模上去一個與一千多服務套餐應該是夠用的。

 

 

通過上圖中的效果,實際完全是可以實現基本客服的功能。

之前說過,通過給上面傳遞參數 控制,讓用戶與用戶之間聯系完全是可以的。

只需要傳遞響應的參數。

如下:

Chat.html?fromDeviceID=default&toDeviceID=xhrdd03t6e

 

default 我這邊默認為管理員的ID.

xhrdd03t6e為用戶的ID.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM