uni-app不支持EventSource,请问SSE有什么替代方案吗?或者有没有第三方的插件可以完成这个功能?
- 发布:2023-04-01 18:47
- 更新:2023-10-08 11:56
- 阅读:7613
废小小小柴 (作者)
我这边的解决方案是打开了一个web-view页面,在web-view页面建立SSE链接,然后通过uni.postMessage发送消息,在App内部进行实时监听,最后实现所需效果,仅供参考。
首先,我们需要了解一下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实时。
推送服务:使用第三方推送服务,如极光推送、腾讯云推送等,将服务器端的数据推送到客户端。这种方式需要使用第三方服务,成本较高,但可以实现实时推送。
-
使用EventSourcePolyfill时又报错TypeError: XMLHttpRequest is not a constructor,有解决办法吗
2023-04-27 16:55
-
回复 l***@163.com: 去node_model里看看有没有EventSourcePolyfill这个文件夹,没有的话可以百度看看如何引入EventSourcePolyfill
2023-04-28 11:19
-
帮大忙了,非常感谢。不过我用的是@microsoft/fetch-event-source,基本差不多,改改也能用,主要是这个renderjs的示例很有用
2023-05-11 00:31
8***@qq.com
大佬你好,在renderjs里面请求会跨域,这个有没有什么好的解决方案
2023-12-20 14:04
a***@iclip365.com
回复 8***@qq.com: 你好、请问解决了嘛
2024-03-27 16:29
crazyliin85
大佬 能在app里面用吗
2024-06-07 17:02