又遇到生产与开发环境结果不一致问题。。。

问题展现

功能背景

一个坐席详情页面功能,用到, 聊天记录接口与sse连接实时推送聊天记录,该逻辑为

js 复制代码
async useMessageList() {
      if (!this.agentNo) {
        return;
      }

      this.loading = true;
      try {

        const res = await getMessageList({
          agentNo: this.agentNo,
          pageNum: this.pageNum,
          // seachCallId: this.seachCallId,
          pageSize: this.pageSize,
        });

        ...



        this.initSse();
        
      } catch (error) {
        console.error('获取消息列表失败:', error);
        // this.$message.error('获取消息列表失败');
      } finally {
        this.loading = false;
      }
    },
    
     initSse() {
      if (this.wsConnected) {
        return;
      }
      const uuid = crypto.randomUUID();
      this.uuid = uuid;
      const agentNo = `${this.agentNo}:${uuid}`
      
      const wsUrl = 'xxx'
      this.$ws.connect(wsUrl);


    },

问题出在crypto

开发环境上

生产环境上

可见该crypto缺少了部分方法。

crypto详解

在mdn文档中crypto是浏览器原生的加密api,版本要求是

同时也存在一个限制,那就是非localhso与https无法使用randomUUID函数,既这也是生产与开发不一致的罪魁祸首。

相关推荐
a1117761 分钟前
堆叠式流程图编辑器(html 开源)
开发语言·前端·javascript·开源·编辑器·html·流程图
墨渊君2 分钟前
前端工程化进阶:Monorepos 架构简析(水文)
前端
兆子龙2 分钟前
前端必学:完美组件封装的 7 个原则
前端·javascript
兆子龙2 分钟前
ahooks useDebounce 与 useThrottle:防抖节流的最佳实践
java·javascript
兆子龙3 分钟前
React 性能坑:别让 AI 踩了,快来添加 rule 吧
前端·javascript
小杰帅气4 分钟前
应用层的HTTP协议
网络·网络协议·http
光影少年4 分钟前
Vue的生命周期有哪些及执行机制?
前端·vue.js·掘金·金石计划
来碗疙瘩汤6 分钟前
Vue 事件绑定完全指南:官方文档未详述的事件大全
前端·javascript·vue.js
天涯学馆6 分钟前
从 V8 引擎看 JS 代码是如何一步步变成机器指令的
前端·javascript·面试
new code Boy6 分钟前
JavaScript转Python”的速查表
开发语言·javascript·python