用于订阅/发布MQTT的C#客户端库(真正的小型消息代理)

时间:2011-07-09 14:44:37

标签: c# .net android notifications mqtt

我需要为Android实施推送通知,但不会有互联网访问权限,只能访问内部网。 所以我认为我不能使用C2DM和第三方API,如UrbanAirship。所以我正在考虑使用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的信息很少,我应该采用这种方式还是有其他选择?

3 个答案:

答案 0 :(得分:30)

好的,这是给你的细分:

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

有一个名为Mosquitto的开源MQTT代理(我开发)。它提供完整的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以获取概述。您也可以在http://webchat.freenode.net/的Freenode网络上的#mqtt irc频道上提问。https://launchpad.net/~mqtt-users还有一个可能有用的邮件列表。

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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