注意:这个类似的问题提出了不同的要求(在服务器端检测客户端断开连接)。
我有一个C#Thrift客户端通过命名管道传输连接到C ++ Thrift服务。我想从客户端检测C ++服务何时终止,即何时连接不再可用。我尝试查看TTransport.IsOpen属性,但是无论如何,它都保持不变true
。有没有一种干净的方法来实现此目的(不通过心跳功能扩展我的服务)?
为了避免依赖平台甚至所选的传输层,我最终在服务中添加了一个非操作ping
调用。客户端定期从后台线程调用此方法,并且在服务器上不执行任何操作。效果是IsOpen
管道的属性已更新,并且IOException
在尝试调用某些内容时也会得到提示。这远非理想,但至少可行,并且由于其他原因我已经包装了我的服务,因此我可以将这种丑陋隐藏在更好的界面后面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句