【发布时间】:2026-02-18 06:35:01
【问题描述】:
我想将命令从一个应用程序(例如在移动设备上运行)发送到另一个位于不同网络中的应用程序(例如在嵌入式设备上运行)。
我不想使用 VPN 或端口转发之类的东西。因此,经过一些研究,我找到了其他一些方法来做到这一点,例如通过像 Azure 服务总线这样的云消息传递服务。
从第一个应用程序向服务总线发送命令/消息对我来说不是问题。但我真的不明白两个如何从云服务连接到第二个设备?我知道我也可以从第二台设备向云服务发送消息,例如通过 HTTPS。然后云服务可以保持该连接处于活动状态。只要连接有效,我就可以向第二台设备发送消息。
但是有些地方我看不懂:
- 当我拥有数千个设备时,保持数千个连接处于活动状态不是问题吗?
- 如果有新消息,第二个设备如何监听连接?在嵌入式设备上不需要太多资源吗?
我还阅读了有关使用“长轮询”技术和 Web 套接字的信息。我知道得太少,无法理解这些概念的优点和缺点。我应该使用哪种技术来解决我的问题?
为了更加独立于平台,我不想使用 Azure IoT Hub 之类的服务。
编辑:
也许我可以使用 Web 服务并实现 MQTT 代理?
【问题讨论】:
-
您是否考虑过网络服务...?意思是创建一个将设备类型作为参数的单一服务..或类似的东西..?
-
@MethodMan 我可以创建一个服务,但是如何通过该服务连接到设备?
-
您在创建网络服务时是否熟悉连接字符串等?我相信网上有很多关于你想要做什么的例子。。也没有看到任何现有的代码,我无法以一种或另一种方式指导你。对不起
-
@MethodMan 我可以使用连接字符串等来获得从设备到云服务或服务总线的连接。但我的问题是,使用消息服务来获得从云/服务器到设备的连接有哪些权衡。
-
如果您的数据存储在云上,假设每个设备都有一个不同的连接..那么您可以向配置文件 dbconn 和 dbconn2 添加两个连接字符串,例如点击一个位置但例如,指向 2 个不同的数据库我不确定这有什么令人困惑的地方..
标签: c# sockets azure mqtt azureservicebus