web-dev-qa-db-fra.com

Bibliothèque cliente C # pour s'abonner / publier MQTT (Really Small Message Broker)

Je dois implémenter la notification Push pour Android mais il n'y aura pas d'accès Internet et seul l'accès intranet est disponible. Je pense donc que je ne peux pas utiliser le C2DM et l'API tierce comme UrbanAirship. Donc je pense d'utiliser MQTT RSMB (Really Small Message Broker), C # .net comme éditeur pour le courtier et wMqtt.jar pour Android comme abonné pour le courtier).

J'ai téléchargé le RSMB et trouvé l'exe suivant: -broker.exe -stdinpub.exe -stdoutsub.exe

J'ai souscrit avec succès à partir de Android et publié des messages en utilisant stdinpub.exe avec le sujet.

J'aimerais avoir des conseils de vous sur les points suivants:

1) .Le RSMB est-il gratuit? Existe-t-il d'autres alternatives adaptées à mon cas?

2). Comment vais-je pouvoir me connecter au courtier RSMB en utilisant C # (pour la publication et l'abonnement). Existe-t-il une bibliothèque cliente C # pour RSMB?

3) .Comment sont les performances et la fiabilité du MQTT? Je pourrais avoir besoin de pousser quelques centaines de messages en même temps.

4) S'il n'y a pas d'autre moyen, je pense à exécuter le stdinpub.exe à l'intérieur de mon application C # (cela peut sembler mauvais).

Je trouve qu'il y a très peu d'informations sur MQTT sur le web et dois-je vraiment aller dans ce sens ou existe-t-il d'autres alternatives?

19
Riddle

Ok, voici une ventilation pour vous:

1) Vous devez lire le fichier de licence fourni avec RSMB lorsque vous l'avez téléchargé. Je crois comprendre que vous ne pouvez pas utiliser RSMB à des fins commerciales et si IBM le publie en tant que produit commercial, vous devez cesser de l'utiliser.

Il existe un courtier MQTT open source appelé Mosquitto (que je développe). Il fournit une prise en charge complète du protocole MQTT et est disponible pour un certain nombre de plates-formes. Il comprend également des bibliothèques clientes en C, avec C++ et Python, ainsi que des exemples de publication et d'abonnement de clients. Vous pouvez obtenir plus d'informations sur http://mosquitto.org/

2) Il y a deux bibliothèques C # disponibles, bien que je ne les ai jamais utilisées moi-même. Vous pouvez trouver un lien vers eux ainsi qu'une charge complète d'autres logiciels liés à MQTT à http://mqtt.org/software

3) J'ai eu RSMB et Mosquitto gérant 1500 messages (100 octets chacun) par seconde sur une vieille machine VIA C3 600MHz. Sur du matériel plus moderne, je m'attendrais à ce qu'ils fonctionnent beaucoup mieux.

En ce qui concerne les informations sur MQTT, j'espère qu'il y a un montant raisonnable sur le site Web du moustique - voir http://mosquitto.org/man/mqtt-7.html pour un aperçu par exemple. Vous pouvez également venir poser des questions sur le canal #mqtt irc sur le réseau Freenode à http://webchat.freenode.net/ Il y a aussi une liste de diffusion à https: // launchpad .net/~ mqtt-users qui peuvent être utiles.

Je crains de ne pas pouvoir vraiment dire si vous devez utiliser MQTT ou autre chose.

31
ralight

Si vous utilisez C # pour le client, vous souhaiterez peut-être consulter la bibliothèque M2Mqtt. Vous pouvez lire tout un article de blog très détaillé sur la bibliothèque ici: http://www.hivemq.com/mqtt-client-library-encyclopedia-m2mqtt/

3
Dominik Obermaier

Vous pouvez aller avec ActiveMQ ou RabbitMQC# clients ... ils supportent tous les deux [~ # ~] mqtt [~ # ~] ..

2
Moumit