最近公司内部使用的系统提出了一个新的需求,要求在界面上显示任务的总数和剩余未被接收的任务个数,由于会多人同时使用这个系统,很显然,当有任务被接收后,所有人在网页上看到的未被接收任务个数都应该减一。
由服务器统一储存任务的总数和未被接收的任务数,登陆系统时获取当前的信息,然后当服务器上的任务数有变化时,客户端获取到通知然后在页面上显示对应的变化。获取通知的方法有两种,客户端请求和服务端通知。
在以前,这种需求只能够通过客户端定时轮询服务器实现,也就是客户端请求这种方式,这只能算是单向通信。而现在,因为有了 websocket,服务端也可以主动向客户端推送,实现双向通信,这次的新需求就准备用这种技术实现。
(如果用 websocket,第四步就省去了)
socket.io 提供了服务端和客户端的库,可以很方便地使用这种技术,而且默认支持 cors,完全可以在不影响原有系统的情况下引入。
至于服务端代码,不需要纠结 socket.io 是否有原有系统使用的服务端语言实现(目前有 js、java、c++、swift等),因为支持 cors,即使写好的服务端代码跑在不同的机器、端口上也可以正常使用。
领取专属 10元无门槛券
私享最新 技术干货