hero913
(文风大侠)
高级会员

现在穷疯了,没钱
UID 70150
精华
0
积分 924
帖子 958
金钱 924 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-3-23
状态 离线
|
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
关于在线办公系统,侦测不正常退出的解决办法。
请各位大哥提出更好的解决方案
========================================================
方案1。
工作需求:
当下属传送签署文件到上级时,在上级计算机网页会跳出讯息通知窗口,告知有私人文件送达,如果上级未上线,则传送手机简讯告知。
问题:
1. 当发生未按程序注销时,会造成系统以为使用者还在在线,而发生传送简讯和讯息通知的问题。
2. 讯息通知和手机简讯实时性。
建议:
* 侦测断线:
1. (web 这种被动的处理模式很难 "立刻" 知道使用者已离线这件事...一般会用以下方法来侦测)---- 在Server端的程序则是建立一个数据表(例如命名为backtime),纪录登入时间、回传的时间、client IP…等信息,。在client网页上,隐藏一个frame或iframe,以javascript的timer定时(例如5分钟)将iframe转址执行一个 php网页 (更新backtime数据表的回传时间)。
2. 以linux的cron排程定时去执行一个php网页,侦测backtime数据表内的每位登入者的回传时间字段是否超过5分钟,如果超过,则删除此登入者。
* 侦测是否有讯息通知:
1. 当网页埋入一个隐藏frame或 iframe,以javascript的timer定时(例如5分钟)去执行一个 php网页时(是否跟更新回传时间同一个php网页,则视系统整体性为主),在此php 里也包含检查是否有讯息通知(当然在数据库内要有此纪录),有的话在此php网页执行javascript的弹出窗口告知有讯息通知。(loading会比较重,但较具实时性,否则只能当使用者reload网页或跳到系统另外的网页时,才能侦测到是否有讯息通知)。
Ps. 以iframe来做会比较类似背景作业。
* 手机简讯通知:
1. 此部份可使用linux的cron排程定时去执行php网页(是否要跟检查登入者回传时间同一张php网页,则视系统整体性为主)。当使用者未登入,有讯息尚未接收、且手机简讯尚未发送,则传送手机简讯。
结论:
上面方法仍然存在着时间差、实时性、loading是否太重问题。对于时间差和loading问题需详细思考每张网页和server端 cron排程执行时的协调性,时间调太短loading 会加重,但时间差距较小;时间调太长往往会丧失实时性。而实时性则需端看公司能忍受的时间范围,且须告知公司延迟的时间范围。
  
==========================================================
方案2(这个不知道能不能实现,请各位指点,如果这个能实现的话那就更好了,我也没有试过,只是这样想的)
由服务器端主动发起对客户端浏览器是否仍开启的侦测;
譬如由数据库查出对象用户的uid,sid或相关ip等所需数据,再以php或javascript命令查询客户端
浏览器版本或浏览器须响应的数据,以查询响应的值决定浏览器是否开启!
|  MSN:aaron-0913@hotmail.com
skype:chenqiangang
QQ:105915495
php我的最爱,希望志同道合的加我,聊一聊
给我留言 |
|