我有一个多gui单服务架构(我同时实现服务和客户端)(使用.net 3.5,c#,windows应用程序/服务)。
更新guis的最佳做法是什么?我知道双工通信,但如果客户端在一段时间内没有发送任何请求,则该通道已关闭!增加超时不是最佳解决方案......?!
此致 马库斯
答案 0 :(得分:0)
GUI正在按TCP Duplex向服务发送命令。每次,一个GUI正在改变一些事情,其他guis必须被告知有关变化,发生在服务上。
第一个解决方案:guis可以每隔x秒轮询一次要求的服务:是否有更新?
但我真的不喜欢这个解决方案。每次发生变化时,服务都会通过回调向每个gui发送“gui you have update”。但可能所有的频道都不再开放......
希望这有助于理解(对不起我非常糟糕的英语)
答案 1 :(得分:0)
如果您想要客户端注册到服务的架构,并且服务在发生更改时立即将数据更改推送到客户端,而不是双工绑定是解决方案。否则不要使用双面打包。
如果您不喜欢增加连接超时的想法,您可以始终实现自己的保持活动机制。客户端将在预定义的时间间隔内继续向服务发送一些保持活动消息,因此连接仍将打开。