我已經開發一個JavaScript聊天(PHP的在後端)重複:Ajax的輪詢聊天使用得到在上迅速聊天消息接收器前端
1) long-polling to get new messages for the receiver
2) sessionStorage to store the counter of messages
3) setInterval to read new messages and if sessionStorageCounter < setIntervalCounter then the last message is shown to receiver.
4) javascript to create,update and write the chat dialogues
模塊工作正常,但是當用戶有一個快速聊天接收者的前端得到兩個或三個相同的消息,(既不是計數器失敗,查詢也不提供雙重插入)。
該代碼似乎是正確的(這就是爲什麼我不提供代碼),所以間隔延遲可能是原因(減少間隔延遲,沒有變化)。
您是否認爲上述模式是不好的做法,您認爲哪種模式可以消除錯誤?
您可以在添加新的聊天消息之前始終檢查DOM,看看是否有相同的消息。這樣你就不會有同樣的信息兩次了, – Robin
我給你的另一個建議是,如果你要在你的應用程序中進行實時聊天,你爲什麼不考慮在服務器端和客戶端使用socketio服務器在後端運行以提供聊天應用程序需求 – Robin
您是否依賴任何時間戳服務器端? – Muggles