一些客户电脑使用同一款我写的软件,现在我想在服务器写另一软件监视客户是否登录了,就像QQ一样的,客户登录了,图标点亮,显示相应的登录名字,客户关闭了软件,图标便变成灰色。这该怎么做?有没有例程?
------解决思路----------------------
服务器数据库中使用一个表记录用户登录状态,用户登录置1,注销置0。这样就可以简单判断用户是否登录了。
但是有个问题,就是客户端意外断线或者退出,没有执行注销的逻辑,就会判断错误,为此,客户端每隔几分钟和服务器通讯一次,服务器记录下用户最后联系的时间。这样,判断是否在线的条件就是用户登录状态字段为1,并且最后通讯时间小于时间间隔。
------解决思路----------------------
tcp连接,客户端断开连接一般服务器端是知道的,如果意外断开检测不到,可以在双方加个心跳包(如每10秒发一次心跳,超过30秒没收到对方心跳,就认为已经断开了)