假设有员工负责这项工作,而经理则负责监控。每次员工完成一项任务时,经理都会接受它。如何让这些新任务一出现就实时显示在管理器页面上?
我想到了一种每隔几秒就向后端发出请求的方法,但想象一下每个经理每隔几秒就会发出如此多的请求,这有点可怕。
是否可以使用特定命令以某种方式从服务器直接向管理器页面发送命令?
假设有员工负责这项工作,而经理则负责监控。每次员工完成一项任务时,经理都会接受它。如何让这些新任务一出现就实时显示在管理器页面上?
我想到了一种每隔几秒就向后端发出请求的方法,但想象一下每个经理每隔几秒就会发出如此多的请求,这有点可怕。
是否可以使用特定命令以某种方式从服务器直接向管理器页面发送命令?
有几种方法,根据案件的严重程度,您可以选择您最喜欢的或者更容易实施的一种。
到处都有优点和缺点。
1. 最古老,最简单的方式——轮询
我敢肯定有一半的互联网都是这样工作的。
2. 也是过去的一个变种,更难——长轮询
3. 服务器发送事件- 以一种方式提供从服务器到客户端的发送消息。
交换协议是由分隔符分隔的纯文本。
4. WebSocket - 提供双向发送消息。
交换协议比 SSE 更复杂,已经有一个标头和其他细微之处。
从服务端看,SSE的实现要比 websockets 的实现简单得多。这是为了以防您的网络服务器不知道如何开箱即用地执行上述任何操作。
我自己也做了同样的事情:使用 ajax。只需设置间隔 - 一分钟就足够了,并向工作人员显示一条消息 - 您的任务将在 n 分钟内检查。不要害怕服务器,测试并查看负载。