我正在查看必须在以下约束下工作的 Javascript 小部件:
- 小部件向第 3 方服务器发出请求以及回调 URL
- 3rd 方服务器在任意时间后 ping 回调 URL,这应该触发一个在小部件内运行的方法
这是小部件的实现方式:
- 服务器 A 已设置完毕。该小部件将 GUID 参数附加到指向服务器 A 的静态 URL。
- 小部件将此 URL(带有 GUID 参数)发送到第 3 方服务器。
- 服务器 X 只是侦听来自第 3 方服务器的请求,并将每个请求的 GUID 参数存储在数据库中。
- 该小部件每 X 秒轮询一次服务器 A,以查看第 3 方服务器是否使用其 GUID 发送了回调。
- 如果服务器返回 OK 响应,则小部件将运行所需的方法。
似乎是一个相当粗略的实现。没有更简单的方法可以做到这一点吗?
我想探索:
a) 是否可以避免重复从小部件轮询服务器?可以设置保持连接吗?小部件可以订阅服务器事件吗?我查看了允许服务器向浏览器发送推送通知的服务器发送事件 API。但这与 IE 尚不兼容。
b) 是否可以完全避免设置后端?WebSockets 浮现在脑海,但我对细节模糊不清,兼容性问题会使它们不受欢迎。
谢谢。