gpt4 book ai didi

javascript - 如何实现由第三方服务器触发的 JavaScript 方法?

转载 作者:可可西里 更新时间:2023-11-01 16:28:47 24 4
gpt4 key购买 nike

我正在查看必须在以下限制条件下工作的 Javascript 小部件:

  1. 小部件向第三方服务器发出请求以及回调 URL
  2. 第 3 方服务器在任意时间后 ping 回调 URL,这应该触发一个方法在小部件内运行

小部件是这样实现的:

  1. 服务器 A 已设置。该小部件将 GUID 参数附加到指向服务器 A 的静态 URL。
  2. 小部件将此 URL(带有 GUID 参数)发送到第 3 方服务器。
  3. 服务器 X 只是监听来自第 3 方服务器的请求,并将来自每个请求的 GUID 参数存储在数据库中。
  4. 小部件每 X 秒轮询一次服务器 A,以查看第 3 方服务器是否发送了带有其 GUID 的回调。
  5. 如果服务器返回 OK 响应,小部件将运行所需的方法。

似乎是一个相当粗略的实现。有没有更简单的方法来做到这一点?

我想探索:

a) 是否可以避免从小部件重复轮询服务器?可以设置保持连接吗?小部件可以订阅服务器事件吗?我查看了服务器发送事件 API,它允许服务器将推送通知发送到浏览器。但这还不兼容 IE。

b) 是否可以完全避免设置后端?想到了 WebSockets,但我不清楚细节,兼容性问题会使它们变得不受欢迎。

谢谢。

最佳答案

服务器消息和类似的 WebSocket 是您的两个答案。遗憾的是,两者都不是普遍存在的,因此您不能使用其中任何一个的普通实现,并期望得到全面支持。

有一些解决方案(不幸的是,有几个是付费的),它们在两端都提供 WebSocket 功能,并回退到 Flash 或长轮询。

Pusher 是一个立即浮现在脑海中的库。无论后端是什么,Pusher 都有多种实现,客户端将默认使用 websockets,但如果可能,将恢复为 Flash 的数据传输格式。他们还有一个 REST API。

这一切都取决于您希望支持谁。最后,我什至不知道你是否愿意为 IE6/7 用户提供完整的实时体验,即使你可以.........因为最坏情况下的解决方法(即:持续轮询)也是性能最慢的,然后最慢的浏览器将无法使用。

关于javascript - 如何实现由第三方服务器触发的 JavaScript 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com