我有一个Node.JS服务器应用程序,它通过Web套接字与更多的客户端通信。现在我需要以这种方式扩展我的解决方案:每次当客户端连接到服务器并获得唯一ID时,从这一点开始,需要不断调用一个特殊的REST API端点(在某种无限循环中),将获得的客户端ID作为参数,并处理来自REST API响应的更改。
示例:-客户端1连接到服务器。Web套接字打开,通信也打开。此时,无限循环开始,并反复调用REST终结点(例如/info?clientId= Client 1)...
- 5分钟后,客户端2也连接到服务器,并且开始一次又一次地调用REST端点(/info/clientId= Client 2)。
- 突然/info?clientId= Client 1返回了更改的数据,现在是时候做出React了。我将向打开的web套接字发送一些特殊的响应,但对于客户端1和客户端2,无限循环仍应运行。
这对于所有客户端都应该是相同的(当正在服务某些其他客户端时,也包括新连接的客户端)。
我不知道我应该如何实现这个循环...我试图谷歌它,但也许如果你能给我一些建议或推荐我一些文章,这将是非常有帮助的我...
3条答案
按热度按时间bvjxkvbb1#
听起来像是轮询或长轮询。我会把它放在一个单独的模块中,并在新数据上引发一个事件。
我没有测试这段代码,所以你可能需要修复一些东西,但它是一般的想法。
new9mtju2#
一个典型的死循环轮询node.js中的某个端点将涉及一个
setTimeout()
,它是在完成处理程序中从上一个调用中调用的。因此,由于您没有提供真正的代码,下面是它如何工作的概述:omtl5h9j3#
您可以使用axios和
setTimeout()
函数调用端点。注意:要确保上一个请求已完全处理,可以使用标志例如: