【问题标题】:Notify windows program from WebServer从 WebServer 通知 windows 程序
【发布时间】:2015-04-03 11:52:37
【问题描述】:

目前我正在用 C# 为 windows 7 编写一个小程序,它可以通过 GCM(Google Cloud Messeging)向我的 Android 智能手机发送通知。为此,我通过 POST 将一些数据发送到我的 WebServer,然后通过 GCM 将数据推送到我的智能手机。这种方式效果很好,但我也想从我的智能手机向我的程序发送一些数据。

我现在的问题是我不知道如何从我的 WebServer 通知我的 C# 程序。我想过这样的事情:

Smartphone -> send Data to WebServer -> notify C# program

我不想使用轮询,而且 GCM 客户端仅适用于 Android 智能手机。那么您认为通知我的程序某些数据可用的最佳方式是什么?我读过一些关于 HTTP 流的东西,但我不知道它是如何工作的,也不知道我是否可以用 C# 实现它。或者您有其他想法如何解决这个问题?

【问题讨论】:

  • 了解 SignalR 的 WebServer->Client 部分

标签: c# push-notification polling http-streaming


【解决方案1】:

SignalR 很好,但您也应该了解套接字编程的基本概念。 C# 使打开套接字和侦听消息变得非常容易。微软网站向您展示了如何同步处理请求here

Http 只是一个消息协议。一旦你理解了协议,阅读消息就不会太难了。请记住,如果您从服务器接收消息,它将需要知道您的 IP 地址等。

【讨论】:

  • 感谢您提供的看起来非常棒的产品。但我还有一个问题:你说服务器需要知道我的 IP 等。如果我从我的程序向服务器发送请求,服务器知道我的 IP 地址等等,对吗?因此,假设我的程序在开始时“注册”自身(向服务器发送请求),那么如果我想从服务器与程序通信,我可以将信息存储在服务器上并稍后使用它们,对吗?我是否必须在路由器上打开更多端口才能完成这项工作?
  • 是的,您可以在服务器上注册 IP。确保您正在考虑安全等问题。还要重新考虑投票。如果您的 http 数据很轻,那么每 30 秒左右轮询一次就可以了。 Web 浏览器可以很好地发送请求负载,并且 Web 服务器旨在处理这些负载。这将使您的生活更加轻松和安全,因为您不会将机器的联系方式永久存储在服务器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
相关资源
最近更新 更多