请教一般后端发送给前端消息该怎么实现

2020 年 8 月 17 日
 rqxiao

场景:用户在扫码支付成功后,第三方支付方会异步回调本系统内的一个地址,希望收到回调返回成功后,给前端发送 您已支付成功订单 xx 元!

之前没做过消息发送到前端这方面的,想请教下简单的或者常用的做法是什么,就用 websocket ? 现在后台是 springboot,前端是 ios

9817 次点击
所在节点    Java
52 条回复
ebony0319
2020 年 8 月 17 日
BBCCBB
2020 年 8 月 17 日
场景简单的话 server sent events 应该是简单靠谱的方案. 好像 twitter 都在用.
rf99wSiT6IxH1Z23
2020 年 8 月 17 日
三种方案:
1. Long polling
2. WebSocket
3. Server Sent Events

链接地址: https://javascript.info/

正好我也有类似需求
edk24
2020 年 8 月 17 日
只有这一个场景的话 可以考虑轮询

二维码扫码登录也是用的轮询
dallaslu
2020 年 8 月 17 日
轮询最简单,但是短轮询有可能有一点延迟感。长轮询会好一些。Spring Boot 用可以换 Undertow,用上 WebAsyncTask
gitjavascript
2020 年 8 月 17 日
这种东西轮询就好了,没必要搞麻烦的
wysnylc
2020 年 8 月 17 日
websocket-socketio
不要使用 http 轮询,不及时而且浪费资源,最终还是得升级成 websocket 还不如一步到位
zachlhb
2020 年 8 月 17 日
iOS 可以做推送,APP 上收到推送后进行相应的处理
zhlssg
2020 年 8 月 17 日
long polling 的性能并不比轮询好
OHyn
2020 年 8 月 17 日
轮循最简单,有点追求就上 websocket
OHyn
2020 年 8 月 17 日
对了,还有 server sent events,这个最合适。
bagel
2020 年 8 月 17 日
说 Server Sent Events 的,没看到是 iOS 吗。都不在浏览器里。
las917vki
2020 年 8 月 17 日
長轮询就行了。
sprit
2020 年 8 月 17 日
不能叫前端叫客户端
BoarBoar
2020 年 8 月 17 日
轮询实现简单,性能低。ws 性能高但实现相对复杂,特别是如果其他场景都是 http 的话,需要重写一些组件比如鉴权,为了一个性能要求不高的场景显然是不划算的
devliu1
2020 年 8 月 17 日
补充一下,SSE 只是一种传输方式,和浏览器没有必然的联系。
ccraohng
2020 年 8 月 18 日
观察 大厂们相关服务,云后台,类似的都是轮训。性能低从何谈起
Nich0la5
2020 年 8 月 18 日
虽然轮训的确性能低,但大厂都在用
pkoukk
2020 年 8 月 18 日
这种情况就是典型的轮询
CantSee
2020 年 8 月 18 日
必然是轮询!让他循环查询,间隔个一两秒!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/698855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX