收藏
回答

RequestTask.onChunkReceived 接受部分数据丢失 后端日志返回了完整数据?

确认过 后端返回的数据是完整的 但前端接受的数据 经常 会部分丢失 或 格式错乱 有解决的方法吗 急等


回答关注问题邀请回答
收藏

5 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    04-16

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    04-16
    有用
    回复
  • 如日
    如日
    08-27
    可以考虑一下,真机连接的后端的相关sse接口有没有禁用nginx缓存,需要手动禁用缓存。可以参考:
    # 设置 Nginx 不对 SSE 响应进行缓冲,直接透传给客户端
    proxy_buffering off;
    
    
    # 设置代理读取服务器响应的超时时间
    proxy_read_timeout 24h;
    
    
    # 设置客户端连接的超时时间
    proxy_connect_timeout 1h;
    
    
    # 设置 HTTP 版本,SSE 需要 HTTP/1.1
    proxy_http_version 1.1;
    
    
    # 保持连接活性,不发送连接关闭的信号
    proxy_set_header Connection '';
    
    
    # 配置代理传递的头部,确保 Host 头部正确传递
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    
    
    # 设置代理的响应头部,保持传输编码为 chunked
    proxy_set_header X-Accel-Buffering no;
    
    
    # 设置流式响应头
    proxy_set_header Accept "text/event-stream";
    proxy_set_header Cache-Control "no-cache";
    
    
    # 禁用压缩
    proxy_set_header Accept-Encoding "";
    
    
    # 设置跨域资源共享 (CORS)
    add_header 'Access-Control-Allow-Origin' '*' always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'Origin,Authorization,Accept,X-Requested-With,Content-Type' always;
    
    


    08-27
    有用
    回复
  • DQ
    DQ
    07-07

    我也遇到了丢字.

    我猜测,后端接口是返回的完整数据块. 但是小程序分块数据不完整.

    应该像智能回答的,在前端,确保正确地拼接接收到的所有数据块。可以在接收到每个数据块时,将其追加到一个缓冲区,并在请求完成后再进行统一处理

    07-07
    有用
    回复 1
  • 艺术家小锃子
    艺术家小锃子
    06-25

    你好,请问找到解决办法了吗?我也遇到了相同的问题,头大。

    06-25
    有用
    回复
  • 智能回答 智能回答 该问答由AI生成
    04-13
    有用
登录 后发表内容