WCF客户端异常掉线

时间:2021-03-18 14:51:51

WCF双工通信中,通常将客户ID(Session,WCF初学者,个人理解为一类的)与callback通道绑定在一起Dictionary,当客户端异常掉线,通道记录还在服务器中,造成下次不能成功登陆

网上给出的一个方法大概为 “心跳”,判断客户端是否在线,不在就删掉Dictionary里的记录。本是WCF 初学者,一个担心性能,后来搜到有人说客户端用户数10个左右,完全没影响,另一个不大会写,因为是项目,要想办法写入项目中,做为后备方案吧,实在不行就用这个

另一个方法是继承IDopseable 接口,CSDN上博客户说客户掉线后会自动调用Dopse方法,经实验不行,后来特别搜了下哪个接口的用法,发现CSDN博客没有按哪个接口的用法,可能是博主自已用时用了,但博客上没写清,或许故意留一手吧

自已想办法:既然登陆时记录就在里面,我就在登陆时就删掉记录,不分客户端是否正常在线,造成的问题是:当被删后,登录后正常写入Dictionary的记录,如果先前开的客户端界面还在,点退出,就会删 除Dictionary里记录,这样,后面登录的客户端在Dictionary里的记录一同被删。于是写个回调方法,在删除记录前关闭正常的客户端。如果是异常的不管,因为发送方式为IsOneWay.效果与早期的QQ 挤掉线类似。

没有代码,因为是公司项目