【问题标题】:WCF Duplex service VS Socket based on TCP基于 TCP 的 WCF Duplex 服务 VS Socket
【发布时间】:2014-08-09 02:31:05
【问题描述】:

我正在做一个项目,包括 WCF 服务器和远程客户端。现在软件的必要功能部分需要将消息从服​​务器推送到指定的客户端。

我知道 Socket 可以实现这一点,但我只想使用 WCF。所以我找到了关于 WCF 双工服务的文档。这是我的想法:

  1. 我启动了一个只与双工服务通信一次的新线程 然后等待来自服务器的回调。(保留线程 活着并让代理打开等待回调)
  2. 在服务器端,我将所有客户端的callbackInstance保存在一个List中,一旦我想在指定的客户端上调用callback,我会从List中取出callbackInstance并调用callback方法。

问题

  1. 我的想法可行吗?
  2. 如果问题一是,如何检测客户端是否还活着(防止在关闭的客户端代理上调用回调。)
  3. 这是我们可以在 WCF 服务中替换 Socket 的东西吗? 非常感谢。

【问题讨论】:

    标签: c# wcf sockets


    【解决方案1】:
    1. 一切皆有可能……问题在于你知道什么、涉及什么以及你有多少时间/金钱。

    2. 我对双工 WCF 的工作并不多,因为我不得不在 web 服务中使用一种方式,但另一种方式是使用像 XSockets 这样的框架。它的第 4 版处于测试版 ATM 中,但开发人员非常平易近人且非常活跃,因此如果您有任何问题,他们会很乐意工作。

    它将为您提供一对一或一对多的双向实时通信,并且可能适合您的用例......

    【讨论】:

    • XSockets 对我来说似乎很有吸引力,我会试试的。谢谢,Noctis,你写的文章 **Understanding SelectedValue, SelectedValuePath... **救了我一天,也救了我的睡眠。LOL
    • 很高兴听到它有帮助,我希望你投赞成票 ;) Signal-R 是另一个类似的解决方案,但是当我查看它时,我发现 XSockets 是我的场景的更好选择.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多