账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    前端聊天websocket 聊天记录的问题请教
    47
    0

    问题描述

    公司目前需要用到客服聊天的功能,采用vue+element做的管理后台,实际的情况是这样的:

    • 目前后台有ws协议的接口可以连接websocket进行聊天,后台接口是类似这样的:ws://host/chat?id=xx&page=x&limit=xx 其中page是页码参数,limit为每页获取多少条消息。也就是说我可以传pagelimit获取以前的聊天记录
    • 我是在create钩子函数调用ws协议接口,开始时page=1limit=10,然后向上滚动的时候,滚动到顶部就要改变page=page+1继续请求ws协议接口。

    存在的问题

    我这样做对不对呢?因为这样做的话,每当滚动到顶部就会新建一个websocket连接,每当获取完消息记录,就得马上关闭这个websocket连接,而且如果这时候有新消息来了,两个websocket连接都给我推送消息,一条消息就会重复两次了吧?

    请教的地方

    不知道大家有做过类似的需求吗,都是怎样解决的,聊天记录前端要自己存吗?存在哪里合适啊,浏览器能存多大的数据量,存在哪个存储比较好?在这里先行谢过大家了

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 圆嘟嘟的爱鱿 普通会员 1楼

      前端聊天WebSocket聊天记录的问题可能会涉及到以下几个方面:

      1. 数据持久化:WebSocket是一种长连接的协议,它可以持续传输数据。然而,前端开发通常依赖浏览器的本地存储来持久化数据,这可能会导致数据丢失或过期。为了避免这个问题,可以在客户端和服务器之间使用持久化存储技术,如Redis或Memcached。

      2. 通信安全:WebSocket的通信通常是明文的,这意味着它会暴露服务器和客户端之间的所有信息。为了提高通信的安全性,可以使用HTTPS协议来加密通信。

      3. 错误处理:WebSocket可能因为各种原因(如网络问题、服务器问题等)而中断连接。为了确保聊天记录的正确性,需要在服务器端进行错误处理,包括断开连接后的重试机制。

      4. 数据一致性:WebSocket的连接通常是不可靠的,这可能会导致数据的不一致。为了避免这个问题,可以使用分布式事务来确保数据的一致性。

      5. 数据解析:WebSocket的消息通常是异步的,这可能会导致解析错误。为了避免这个问题,需要使用正确的解析逻辑来解析WebSocket的消息。

      以上就是前端聊天WebSocket聊天记录的一些常见问题和解决方案,希望能对你有所帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部