HarmonyOS 鸿蒙Next如何支持SSE请求

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何支持SSE请求

vue2版本的H5桥接鸿蒙,有一个AI对话功能,后端采用SSE请求,原本H5使用的是new EventSource请求SSE接口,现桥接鸿蒙不支持,采用鸿蒙原生httpRequest.requestInStream方式,报错400,麻烦帮忙瞅瞅,代码截图和日志附在附件了 1、H5调用uni.requestInstream方法,走到鸿蒙的httpRequest.requestInStream报错400,但是在浏览器上直接使用下方url输入地址是可以请求成功的 2、url可以直接使用https://zhxy.ctxy.cn/api/ai-access/chatWithTyXc?data=你好&identityId=1836243991376371712

3 回复
可以使用EventSource三方库:https://gitee.com/openharmony-tpc/openharmony_tpc_samples/tree/master/eventsource

错误Failed writing received data to disk/application可能原因:应用没有写文件权限或待下载的文件超过5M。

您可以排查下应用权限及待下载的文件大小。

您好

1、首先需要确认客户端与服务端是否连接成功,客户端和服务端event事件要一致。

请您确认服务端中event: 'server-time',名称是否匹配客户端

sseStream.write({

      event: ‘server-time’,

      data: new Date().toTimeString()

    })

如客户端

// 开启监听中对应的服务端名称是否正确

this.es.addEventListener("“server-time”", this.eventListener);

2、另外,需要先添加监听,才能有事件通知。而不是在eventlistener函数中console.log

可以在服务端添加日志(打印到客户端数据),确保客户端连接成功,以及服务端响应成功。

这个库不支持post请求吗?

HarmonyOS 鸿蒙Next如何支持SSE请求

HarmonyOS 鸿蒙Next目前并不直接支持SSE(Server-Sent Events)请求。SSE是一种允许服务器主动向客户端推送实时更新的技术,但鸿蒙Next系统并未原生提供对此技术的支持。

要在鸿蒙Next上实现类似SSE的功能,可以考虑以下替代方案:

  1. 使用Webview:在鸿蒙Next的UI中嵌入Webview,并在Webview中支持SSE。这样,你可以利用Web技术实现服务器向客户端的实时推送。
  2. TCP连接:建立TCP连接,后端持续向客户端推送消息,客户端解析消息并展示。这种方法需要客户端和服务器端都进行相应的开发工作。
  3. WebSocket:将SSE改为WebSocket,WebSocket是一种在单个TCP连接上进行全双工通讯的协议,可以很好地替代SSE实现实时通信。

开发者需要根据自己的应用场景和需求选择合适的替代方案。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部