废小小小柴
废小小小柴
  • 发布:2023-04-01 18:47
  • 更新:2023-10-08 11:56
  • 阅读:5079

uni-app不支持EventSource,请问SSE有什么替代方案吗?

分类:uni-app
sse

uni-app不支持EventSource,请问SSE有什么替代方案吗?或者有没有第三方的插件可以完成这个功能?

2023-04-01 18:47 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

附件里有代码,是生产环境里的代码做了删减,不一定能一次运行完成,但这种做法是没有问题的,亲测有效,有问题再问吧

  • 8***@qq.com

    大佬你好,在renderjs里面请求会跨域,这个有没有什么好的解决方案

    2023-12-20 14:04

  • a***@iclip365.com

    回复 8***@qq.com: 你好、请问解决了嘛

    2024-03-27 16:29

废小小小柴

废小小小柴 (作者)

我这边的解决方案是打开了一个web-view页面,在web-view页面建立SSE链接,然后通过uni.postMessage发送消息,在App内部进行实时监听,最后实现所需效果,仅供参考。

  • xuyujian

    可以分享下,如何实现的吗?

    2023-04-26 14:36

废小小小柴

废小小小柴 (作者)

求回复~

2***@qq.com

2***@qq.com

求回复

1***@qq.com

1***@qq.com

@uniAD管理员

星拾夜暝

星拾夜暝

首先,我们需要了解一下uni-app的特性。uni-app是一个跨平台开发框架,支持使用Vue.js进行开发。它可以将Vue.js代码编译成原生应用程序,支持在多个平台上运行。由于uni-app是基于Vue.js开发的,因此它也支持Vue.js的特性和API。

其次,我们需要了解一下SSE。SSE是一种用于服务器向客户端推送数据的技术,它使用HTTP协议建立长连接,实现了实时通信的效果。但是,由于uni-app不支持EventSource,因此也不支持使用SSE。

那么,有没有其他替代方案呢?答案是肯定的!常见的替代方案包括WebSocket、长轮询和短轮询等。WebSocket是一种基于TCP协议的双向通信技术,它可以实现实时通信的效果。长轮询是一种请求-响应模式,客户端发送请求后,服务器会一直保持连接,直到有数据可以返回给客户端。短轮询则是一种频繁请求的方式,客户端会不断发送请求,服务器会立即返回数据。
或者可以考虑以下替代方案:

WebSocket:WebSocket是一种双向通信协议,可以实现实时数据推送功能。uni-app支持使用WebSocket。

轮询:在客户端定时向服务器发送请求,服务器返回最新数据。这种方式不如WebSocket实时,但可以实现类似的功能。

长轮询:在客户端发送请求后,服务器不立即返回数据,而是等待有新数据时再返回。客户端收到数据后再发送请求。这种方式可以减少网络请求次数,但仍不如WebSocket实时。

推送服务:使用第三方推送服务,如极光推送、腾讯云推送等,将服务器端的数据推送到客户端。这种方式需要使用第三方服务,成本较高,但可以实现实时推送。

  • 2***@qq.com

    使用readerjs可以连接sse

    2023-04-10 16:00

  • n***@aliyun.com

    回复 2***@qq.com: 在uniapp上可以实现sse吗?

    2023-04-11 16:55

  • 2***@qq.com

    回复 n***@aliyun.com: 可以

    2023-04-16 13:43

  • xuyujian

    回复 2***@qq.com: 可以分享下 如何实现的么?谢谢

    2023-04-26 14:36

l***@163.com

l***@163.com

求回复

2***@qq.com

2***@qq.com

看此样例

  • l***@163.com

    使用EventSourcePolyfill时又报错TypeError: XMLHttpRequest is not a constructor,有解决办法吗

    2023-04-27 16:55

  • 1***@qq.com

    回复 l***@163.com:

    是放在rederjs中引入的吗,确认把EventSourcePolyfilldown到本地了吗

    2023-04-28 11:14

  • 1***@qq.com

    回复 l***@163.com: 去node_model里看看有没有EventSourcePolyfill这个文件夹,没有的话可以百度看看如何引入EventSourcePolyfill

    2023-04-28 11:19

  • 1***@qq.com

    帮大忙了,非常感谢。不过我用的是@microsoft/fetch-event-source,基本差不多,改改也能用,主要是这个renderjs的示例很有用

    2023-05-11 00:31

  • XTiger

    回复 1***@qq.com: 能提示一下代码吗?我也碰到一样的问题,谢谢

    2023-05-22 10:55

  • 1***@qq.com

    回复 1***@qq.com: 该怎么携带参数去发起请求呢,在微信小程序中可以使用吗

    2023-06-25 17:59

  • 在在

    回复 1***@qq.com: APP上可以吗

    2023-07-07 16:49

  • y***@gmail.com

    app上不行吧?

    2023-07-23 17:23

  • 文心

    回复 1***@qq.com: 如果在运行中退出了页面就会报错,怎么解决?

    2023-07-24 05:11

5***@qq.com

5***@qq.com

引入本地的EventSourcePolyfill
一直报这个错误 u is not a constructor

9***@qq.com

9***@qq.com

app上好像不行,sse。

要回复问题请先登录注册