Javascript 如何设置Websocket以与客户端和服务器进行通信?
我需要在浏览器和RESTAPI服务之间建立双向通信 我面临的最复杂的事情之一是每秒检查API的更新 我有两种交流方式Javascript 如何设置Websocket以与客户端和服务器进行通信?,javascript,node.js,websocket,Javascript,Node.js,Websocket,我需要在浏览器和RESTAPI服务之间建立双向通信 我面临的最复杂的事情之一是每秒检查API的更新 我有两种交流方式 浏览器将数据和命令传递给API。API执行命令并返回响应 每秒检查一次API,更新用户的缓存,将缓存的缓存内容发送到浏览器 我尝试了不同的技术来处理这个问题,但没有一种效果很好,而且都无法扩展 以下是我尝试过的一些技巧 在Javascript中使用setInterval()函数每秒调用一次API 服务器发送事件(SSE) 在ShardWorker中使用setInterval()函
setInterval()
函数每秒调用一次APIsetInterval()
函数每秒调用一次APIWebSocket处理程序如何处理上述两种通信类型?最简单的处理方法是使用socket.io 你可以找到文件 基本上,在客户机上,您可以执行`socket.on('cache',function(msg){//blabla})
在服务器中,当缓存被更新时,socket.emit('cache',msg) 我遇到了socket.io,但请注意该技术的工作原理。我是否需要有一个nodejs服务器设置来处理API请求,以及作为中间人的websocket?如何每秒ping一次API以获取新数据?API和socket.io服务器可以共存于同一台服务器中。基本上,客户机不会每秒请求数据,而是在数据可用时作为服务器发送数据。当然,您必须知道数据何时得到更新,以便服务器可以将其发送给客户端。我仍然感到困惑。节点服务器如何知道API有新数据而不需要每秒ping一次?API是一个外部服务,我必须每秒钟检查一次,看看是否有新的事件。API是你的吗?如果是,则您可以访问数据,并准确地知道缓存中何时有新数据,以便发送数据。如果API不是你的,那么唯一的解决办法就是每分钟都向客户询问API不是我的。所以我必须每秒钟ping一次。但是我如何设置Websocket,使其每秒ping一次服务器,更新缓存“数组”,然后将数据发送到客户端。我不希望每次刷新浏览器或打开新选项卡时都打开到API的新连接