拿到这个小课题,那个方法可是有很多种呀,但是对于轻量级的来说,怎么做好呢。
其他各种的方法以后整理。
今天讲一下使用websocket方式实现的方式。
websocket原理大家自行学习一下。
因为没有做存储环节,
我们的思路是这样的数据在服务端产生,服务端将数据采集处理,和调用其他程序。
客户端每次请求数据,都执行一次采集程序。这种做法,如果请求的人过多的话,应该是会产生问题。
websocket服务端,使用python编写。
websocket客户端,使用js编写,这里需要注意,要用支持websocket的浏览器才可以。
通过这个项目,对实时通讯和请求,返回通讯有了进一步理解。
这个项目还是偏向于点对点的通讯,所以实时性还很好,但是对于数据量大的采集来讲会有一定的问题。
本项目中,对于数据的实时性要求比较高,我也没有做mysql数据库或者redis的服务。采用的是服务器接收到前端的数据请求之后,服务端立即像另外一个客户端请求数据。
服务端像哪个客户端请求数据呢,这个数据是在前端请求中带有标志位,服务器就知道像那个客户端请求数据了。
这里需要做的是客户端主动链接服务端。使其保持在线状态。
这种方式来讲作为单机软件,采集和渲染在一台主机上,可以做到很好的实时性,采取开启多线程的方式可以保证数据采集和渲染不阻塞,也就是说的不卡。
而我们采用的web方式的分布式的操作方式,在本项目中使用的是单客户端方式。流程为:
客户端向服务端请求数据,服务器收到请求之后,根据需求将数据返回客户端。
这里就是业务层面的逻辑,我们也可以制定很多规则,然后确保数据的有效性和准确性。
到这里就基本完成程序的编写了。
后面还需要将程序继续完善,达到好改好用的状态。
后续要做的,封装JS函数。
完成传感器的测试。传感器作为一个客户端,接受服务端数据请求。
采集是实时的,做一个异步回调函数,如果有请求,则返回实时数据。
连接后客户端与服务器没有数据很快就下线了。这个有说加心跳等等,但是应该是长连接,按理说不主动退出应该不下线呀。待解决。