首页 > 其他分享 >sse流式接口请求

sse流式接口请求

时间:2025-01-16 17:23:59浏览次数:1  
标签:const log text 接口 return 流式 sse console data

sse流式接口请求一般可以使用插件:@microsoft/fetch-event-source

但是如果遇到要传一段录音文件,使用上面的插件就无法处理了,可以使用下面的方法实现传流文件

// 假设有一个文件输入框
const fileInput = document.querySelector('input[type="file"]');

// 创建 FormData
const formData = new FormData();
formData.append('audio', fileInput.files[0]);

// 发送请求并处理流式响应
fetch('/transcribe', {
    method: 'POST',
    body: formData
})
.then(response => {
    const reader = response.body.getReader();
    const decoder = new TextDecoder();
    
    function processStream() {
        return reader.read().then(({done, value}) => {
            if (done) {
                console.log('流读取完成');
                return;
            }
            
            // 解码收到的数据
            const text = decoder.decode(value);
            // 分割成单独的 SSE 消息
            const messages = text.split('\n\n');
            
            for (const message of messages) {
                if (message.startsWith('data: ')) {
                    try {
                        const data = JSON.parse(message.slice(6));
                        
                        if (data.duration) {
                            console.log('音频时长:', data.duration);
                        }
                        else if (data.text) {
                            console.log('转写文本:', data.text);
                        }
                        else if (data.comments) {
                            console.log('评论:', data.comments);
                        }
                        else if (data.final) {
                            console.log('转写结束');
                            return;
                        }
                    } catch (e) {
                        console.error('解析消息失败:', e);
                    }
                }
            }
            
            return processStream();
        });
    }
    
    return processStream();
})
.catch(error => {
    console.error('请求错误:', error);
});

 

标签:const,log,text,接口,return,流式,sse,console,data
From: https://www.cnblogs.com/wjs0509/p/18675402

相关文章

  • 使用Python爬虫获取1688网站item_get_company API接口的公司档案信息
    一、引言在当今的商业环境中,获取供应商的详细信息对于采购决策、市场分析和供应链管理至关重要。1688作为中国领先的B2B电子商务平台,提供了丰富的供应商档案信息。通过使用1688的item_get_companyAPI接口,我们可以方便地获取这些信息。本文将详细介绍如何使用Python爬虫来调用该A......
  • 二次开发,在使用LangChain中的Tongyi模型进行流式输出streaming报错问题,官网框架的BUG
    在使用LangChain中的Tongyi模型进行流式输出时,按照官方的代码直接运行会报一个类型错误:TypeError:Additionalkwargskeyoutput_tokensalreadyexistsinleftdictandvaluehasunsupportedtype<class'int'>.​其指向的错误文件路径如下C:\Users\Chenhao\AppData\Lo......
  • 一步一步教你打造实用API接口
    在当今的软件开发领域,API(应用程序编程接口)已经成为不同系统之间数据交互的基石。一个设计良好、功能实用的API接口不仅能够提升系统的可扩展性和灵活性,还能极大地提高开发效率。本文将详细指导你如何一步一步地打造一个实用的API接口。一、明确API接口的需求与目标在动手之前,首......
  • API Parrot:破解没有公开接口的网站
    在数字化浪潮中,开发者们常常面临一个挑战:如何高效地自动化、集成或抓取那些没有公开API的网站数据?今天,我要给大家介绍一款强大的工具——APIParrot,它绝对是开发者们的新利器!APIParrotAPIParrot是一款专门设计用于反向工程任何网站HTTPAPI的工具。它为开发者提供了一站......
  • 为什么TCP要做成流式协议,而非包?
    TCP被设计成流式协议而非包协议,主要有以下技术方面的原因:适应早期硬件与网络环境:    实现简单:在1970年代,硬件条件有限,如处理器速度慢、内存小等。字节流协议的实现相对简单,允许将控制信息插入字节序列空间,并和有效数据一样期望得到确认,比如SYN、FIN等控制位。这比处理复......
  • 国产化板卡设计原理图:2274-基于FMC接口的JFM7VX690T36的3U VPX信号处理板
    基于FMC接口的JFM7VX690T36的3UVPX信号处理板一、板卡概述     本板卡系我司自主研发的基于3U VPX导冷架构的信号处理板,适用于高速图像处理等。芯片采用工业级设计。该处理板包含1片 FPGA-JFM7VX690T36。板载两组64位宽DDR3,每组容量4GB,一个HPC FMC接口。VPX接口连接4......
  • wordpress的火车头商品发布接口
    <?phprequire'../wp-load.php';ini_set('memory_limit','1024M');set_time_limit(180);$top_cat='';#图片链接域名替换$image_host='';$start_time=microtime(true);$counter=0;//临时缓存$products=$sk......
  • 接口漏洞扫描
    小程序漏洞扫描功能介绍一、小程序漏洞扫描功能简介为提高微信开放平台生态安全性,针对小程序开发过程中的安全问题,如敏感数据篡改、拖库信息泄露、WEB攻击等安全问题,平台向开发者提供漏洞扫描功能,协助开发者及运营者发现后台接口漏洞,并给出相应的修复指引。后续会进一步提供基......
  • 音视频文件提供流式传输之HTTP Range 请求
    在Web开发中,正确返回音频和视频流给前端的方式是确保服务器端以流的形式发送媒体文件,而不是将整个文件加载到内存中,然后再传输。这种做法可以提高性能,避免内存溢出,尤其是在处理大文件时。对于音频和视频流的处理,最常见的技术是HTTP流式传输(HTTPStreaming)Range请求。这些......
  • Linux创建虚拟WLAN接口并测试
    Linux创建虚拟WLAN接口并测试|DD'NotesLinux创建虚拟WLAN接口并测试创建虚拟WLAN接口主要通过mac80211_hwsim内核模块实现,该模块可以模拟多个无线网卡设备,并支持创建虚拟的WLAN接口。mac80211_hwsim简介mac80211_hwsimisaLinuxkernelmodulethatcanbeusedtosimu......