我有关于设计模式的理论问题。 我希望我的客户端从我的服务器端接收事件,让我们说当用户在聊天中收到新消息时。
假设我们在客户端运行JavaScript。
实现此目的的一种方法是从客户端向服务器发送请求,定期询问'Are there any updates?'
。这是低效的,因为当没有可用的更新时,我们将发送太多冗余请求。
有没有办法只在有这种情况时从服务器端侦听更新。例如,在客户端实现接收器/监听器?如果用JavaScript无法做到这一点,你会怎么做呢?
谢谢。
答案 0 :(得分:1)
这里有一些解决方案:
让您的AJAX请求在定时循环中运行。虽然不是实时,但它具有与实时应用程序类似的属性。
var requestLoop = setInterval(function(){
//HTTP Request to update data here
}, 60000);
https://console.cloud.google.com/iam-admin/serviceaccounts/project?project-name-12345。这是他们为此开发的具体内容,使用此API,您可以将消息发送到服务器并接收事件驱动的响应,而无需轮询服务器以进行回复。" 注意:有Edge / IE浏览器支持问题
附加:WebSockets
WebSocket支持上的Stackoverflow:Writing WebSockets for JS