日期:2014-05-19  浏览次数:20767 次

值班监控的程序,大家帮分析一下。。
我想知道的是实现细节,拜托了!
*********************************

开发目的:防止下属单位值班员睡觉

C/S部署方式:服务器端设在总值班室,客户端设在下属单位的值班室

S端:
服务器端面板显示三种状态,
状态1:网络连接正常,状态指示灯为绿色,
状态2:网络断开,状态指示灯黄色,
状态3:客户端5分钟不点击鼠标,服务端状态指示灯为红色,服务器和客户端同时播放报警声音。。

服务器端每个指示灯对应一个客户端,
一个服务器端对应40个客户端,

------解决方案--------------------
这种方法不太可行,如果网络中断了,服务器5分钟接收不到信息,也会叫。。。而且客户端很多,服务器要有很多个计时进程。。。不太合理。。
------------------------------
服务端无需计时器,只需监听客户端无动作通知,如有,激发服务器和客户端的报警提示。
客户端本地一个计时器,性能考虑可以隔0.5min(比如)进行5min的count down,如果到点则向服务端发送无动作通知,如果鼠标键盘有动作则终止count down,等1min后继续count down

ps:对客户端通宵cs的情况无法识别。
------解决方案--------------------
总值班室建立一个Socket Server, 下属单位的值班室的客户端程序和它建立Sokcet 连接,Server用一个List把连接维护好,当值班室的人敲鼠标时向Server 发一条信息,Server 收到后把时间记录在此连接名下.

Server 除了Socket 的监听和接受新连接之外,只需再额外起一个线程轮流查看个连接收到客户端信息的时间,超过5分钟就报警指示该客户端有情况.

这里用Socket (不用Remoting) 的好处是网络断开(无论服务器方还是某个客户方)马上就会知道.如果用Remoting,通常的Channel都不会马上通知你网络断开.

至于客户方的报警更容易,也用不着检查网络连接,只要有五分钟没收到鼠标信息,立即嚎叫.


鼠标点击方案也不靠谱 :)左边找个模拟软件都废了你的方案
________________________________________________________
给他们留个可乘之机,查出来扣丫奖金!