21

我需要为 Android 实现推送通知,但不会有 Internet 访问权限,只有 Intranet 访问权限可用。所以我认为我不能使用像 UrbanAirship 这样的 C2DM 和第三方 API。所以我正在考虑使用 MQTT RSMB(真正的小型消息代理)、C# .net 作为代理的发布者和 Android 的 wMqtt.jar 作为代理的订阅者。

我已经下载了 RSMB 并找到了以下 exe:-broker.exe -stdinpub.exe -stdoutsub.exe

我已成功订阅 Android 并使用带有主题的 stdinpub.exe 发布消息。

我想从你们那里得到一些关于以下方面的建议:

1).RSMB是免费的吗?还有其他适合我的情况吗?

2).如何使用 C# 连接到 RSMB 代理(用于发布和订阅)。RSMB 是否有任何 C# 客户端库?

3).MQTT的性能和可靠性如何?我可能需要同时推送数百条消息。

4)。如果没有其他方法,那么我正在考虑在我的 C# 应用程序中执行 stdinpub.exe。(听起来可能很糟糕)。

我发现网上关于 MQTT 的信息很少,我真的应该这样做还是有其他选择?

4

3 回答 3

39

好的,下面为您进行细分:

1) 您需要在下载 RSMB 时阅读随附的许可文件。我的理解是您不能将 RSMB 用于商业目的,如果 IBM 将其作为商业产品发布,您必须停止使用它。

有一个可用的开源 MQTT 代理,称为 Mosquitto(我开发的)。它提供完整的 MQTT 协议支持,可用于许多平台。它还包括 C 语言客户端库、C++ 和 Python 包装器,以及示例发布和订阅客户端。您可以在http://mosquitto.org/获得更多信息

2) 有两个可用的 C# 库,尽管我自己从未使用过其中任何一个。您可以在http://mqtt.org/software找到指向它们的链接以及大量其他 MQTT 相关软件

3) 我已经让 RSMB 和 Mosquitto 在一台旧的 VIA C3 600MHz 机器上每秒处理 1500 条消息(每个 100 字节)。在更现代的硬件上,我希望它们表现得更好。

关于 MQTT 的信息,我希望 mosquitto 网站上有一个合理的数量 - 例如,请参阅http://mosquitto.org/man/mqtt-7.html的概述。您也可以在 Freenode 网络上的 #mqtt irc 频道上提问,网址为http://webchat.freenode.net/还有一个邮件列表https://launchpad.net/~mqtt-users可能是采用。

恐怕我无法真正评论您是否应该使用 MQTT 或其他东西。

于 2011-07-09T17:13:02.847 回答
5

如果您使用 C# 作为客户端,您可能需要查看库 M2Mqtt。您可以在此处阅读有关该库的所有非常详细的博客文章:http ://www.hivemq.com/mqtt-client-library-encyclopedia-m2mqtt/

于 2015-07-27T13:04:42.600 回答
3

您可以使用ActiveMQRabbitMQ C# clients ...它们都支持MQTT ..

于 2016-07-17T11:47:41.047 回答