С# клиентская библиотека для подписки/публикации MQTT (действительно малый брокер сообщений)
Мне нужно реализовать push-оповещение для Android, но не будет доступа в Интернет, и доступен только доступ в интрасети.
Поэтому я думаю, что не могу использовать C2DM и сторонний API, такие как UrbanAirship. Поэтому я подумываю об использовании MQTT RSMB (Really Small Message Broker), С#.net как Publisher для брокера и wMqtt.jar для Android в качестве подписчика брокера.
Я загрузил RSMB и нашел следующие exe:
-broker.exe
-stdinpub.exe
-stdoutsub.exe
Я успешно подписался на Android и опубликовал сообщения, используя stdinpub.exe с темой.
Я хотел бы получить несколько советов от вас, ребята, о следующем:
1). RSMB свободен? Есть ли другие альтернативы, которые подходят моему делу?
2). Как я смогу подключиться к брокеру RSMB с помощью С# (для публикации и подписки). Есть ли какая-либо клиентская библиотека С# для RSMB?
3). Как производительность и надежность MQTT? Мне может потребоваться одновременно нажать несколько сотен сообщений.
4). Если нет других способов, я думаю о выполнении stdinpub.exe внутри моего приложения С# (это может показаться плохим).
Я нахожу, что в Интернете очень мало информации о MQTT, и должен ли я действительно идти этим путем или есть другие альтернативы?
Ответы
Ответ 1
Хорошо, вот разбивка для вас:
1) Вам необходимо прочитать файл лицензии, который был включен в RSMB при его загрузке. Я понимаю, что вы не можете использовать RSMB для коммерческих целей, и если IBM выпустит его как коммерческий продукт, вы должны прекратить его использовать.
Существует брокер MQTT с открытым исходным кодом, доступный под названием Mosquitto (который я разрабатываю). Он обеспечивает полную поддержку протокола MQTT и доступен для ряда платформ. Он также включает клиентские библиотеки в C, с обертками С++ и Python, а также пример публикации и подписки клиентов. Вы можете получить дополнительную информацию по адресу http://mosquitto.org/
2) Доступны две библиотеки С#, хотя я никогда не использовал их самостоятельно. Вы можете найти ссылку на них, а также всю нагрузку другого программного обеспечения, связанного с MQTT, на http://mqtt.org/software
3) У меня были RSMB и Mosquitto, обрабатывающие 1500 сообщений (по 100 байт каждый) в секунду на старой машине VIA C3 600MHz. На более современном оборудовании я ожидаю, что они будут работать значительно лучше.
Что касается информации о MQTT, я надеюсь, что на сайте москитов есть разумная сумма - см. http://mosquitto.org/man/mqtt-7.html для обзора, например. Вы также можете задать вопросы по каналу #mqtt irc в сети Freenode в http://webchat.freenode.net/ Существует также список рассылки https://launchpad.net/~mqtt-users, который может быть полезен.
Я боюсь, что не могу прокомментировать, следует ли использовать MQTT или что-то еще.
Ответ 2
Если вы используете С# для клиента, вы можете проверить библиотеку M2Mqtt. Вы можете прочитать все очень подробное сообщение в блоге о библиотеке: http://www.hivemq.com/mqtt-client-library-encyclopedia-m2mqtt/
Ответ 3
Вы можете пойти с ActiveMQ или RabbitMQ C# clients
... они поддерживают MQTT..