【问题标题】:Can I use SignalR in my Winform c# app?我可以在我的 Winform c# 应用程序中使用 SignalR 吗?
【发布时间】:2013-10-31 08:41:57
【问题描述】:

在我的 winform c# 应用程序中,每隔几秒就会轮询一次 Web 服务。它检查消息并从我的服务器获取它们和/或将消息从我的桌面应用程序中继到我的服务器。

Web 服务在无限循环中被调用,用户可以在单击按钮时停止和启动。当轮询进行时,内存会上升并保持不变(我想我期望使用无限循环)。如果我的服务器有办法通知我的客户一条消息可用,那么我认为我可以摆脱我的无限循环。我正在研究不同的架构,我遇到了 SignalR,但它似乎更适合 asp.net。是这样吗?或者可以修改它以在我的场景中工作吗?

谢谢

【问题讨论】:

标签: c# signalr


【解决方案1】:

使用 SignalR 作为客户端(或服务器)需要 win8+ 才能获取 websocket。这应该是你在使用它之前非常清楚的事情。我学到了艰难的方法;)在这里查看支持http://www.asp.net/signalr/overview/signalr-1x/getting-started/supported-platforms

【讨论】:

  • 嗨,这是一个有用的评论。那么它是否会退回到长轮询然后你知道 - 这几乎就是我现在正在做的事情。请问你决定做什么?
  • 您可以在 Windows 上运行 SignalR 客户端,但除非您有 win8,否则您将获得除 websockets 之外的其他传输(SSE,长轮询)。这在我们的项目中是不行的,我们还需要从其他系统(例如 RaspberryPI)进行通信。长话短说,我们放弃了 SignalR 并改用 xsockets.net。这就是让我们信服的原因 xsockets.net/xsockets-vs-signalr
  • 我希望不久前看到这篇文章。我现在发现了为什么我们的 Win7 客户端不会向 Win2012 hsoted signalR 服务使用 WebSockets。我们在 jabbr 上聊过——我仍在决定是否尝试为 xsockets.net 编写自定义客户端传输或“bin”signalR
  • @penderi SignalR 在不支持 websockets 时有一个很好的回退机制。在我们的例子中,我们不能使用 SSE 等。我们需要全双工通信,而 websockets 是我们唯一的选择。由于我们还需要从微控制器连接,因此选择对我们来说很容易。您必须进行概念验证,看看 SR 或 XS 是否适合您。
  • @penderi 这在添加自定义功能时帮助了我们很多youtube.com/…
【解决方案2】:

查看这个关于将 asmx/WCF 提升为 2 行代码中的推送服务的答案。 Push Data from a WCF Service to Website

【讨论】:

    【解决方案3】:

    SignalR 有一个 .NET 客户端,您也可以使用 Owin 自行托管 SignalR

    安装包

    Microsoft.AspNet.SignalR.Client
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多