鍍金池/ 問答/HTML/ 前端聊天websocket 聊天記錄的問題請教

前端聊天websocket 聊天記錄的問題請教

問題描述

公司目前需要用到客服聊天的功能,采用vue+element做的管理后臺,實際的情況是這樣的:

  • 目前后臺有ws協(xié)議的接口可以連接websocket進行聊天,后臺接口是類似這樣的:ws://host/chat?id=xx&page=x&limit=xx 其中page是頁碼參數(shù),limit為每頁獲取多少條消息。也就是說我可以傳pagelimit獲取以前的聊天記錄
  • 我是在create鉤子函數(shù)調(diào)用ws協(xié)議接口,開始時page=1,limit=10,然后向上滾動的時候,滾動到頂部就要改變page=page+1繼續(xù)請求ws協(xié)議接口。

存在的問題

我這樣做對不對呢?因為這樣做的話,每當滾動到頂部就會新建一個websocket連接,每當獲取完消息記錄,就得馬上關(guān)閉這個websocket連接,而且如果這時候有新消息來了,兩個websocket連接都給我推送消息,一條消息就會重復兩次了吧?

請教的地方

不知道大家有做過類似的需求嗎,都是怎樣解決的,聊天記錄前端要自己存嗎?存在哪里合適啊,瀏覽器能存多大的數(shù)據(jù)量,存在哪個存儲比較好?在這里先行謝過大家了

回答
編輯回答
礙你眼

websocket是為了給你實時推送消息的,不是讓你當ajax用去獲取歷史消息的。你都從后臺在獲取歷史消息,你前臺保存聊天記錄干什么?頁面一打開連接websocket就行了,不用你關(guān)閉。

2017年1月17日 04:59
編輯回答
逗婦惱

一個房間對話 一個ws連接就好了
數(shù)據(jù)每次傳遞 你渲染標簽就好了啊 需要什么儲存么

2018年2月1日 13:45
編輯回答
局外人

聊天記錄不是推送的吧,應(yīng)該是你自己獲取,跟websocket沒關(guān)系

2017年7月2日 18:45