2013-05-30 1 views
0

J'ai deux instances de serveur exécutant de cow-boy qui sont connectés à RabbitMQ. J'utilise gen_bunny comme client RabbitMQ pour me connecter à RabbitMQ.Diffusion de messages en utilisant rabbitmq, genbunny et événement cow-boy notificateur

Je peux consommer le message à partir rabbitmq si vous utilisez bunnyc: consommer(). Cependant, pour cela, j'ai besoin de déclencher cette méthode explicitement. Ce que je veux, c'est lier un événement sur un cowboy, dès qu'il y a un message dans la file d'attente, il doit le signaler automatiquement à cowboy.

Est-il possible à l'aide gen_bunny ou un autre client de Erlang?

Répondre

0

Got it travaillé ... Après quelques ajustements dans la source de bunnyc.erl. Maintenant, en fonction init i ai ajouté la fonction de souscription et en fonction start_link dans bunnyc.erl passer l'ID du processus de mon processus de cow-boy de façon dès qu'il ya un message dans la file d'attente, je peux l'obtenir en fonction websocket_info de cow-boy ..

2

Ne pas savoir sur gen_bunny, mais avec le client officiel de Erlang vous pouvez vous abonner à la file d'attente (voir http://www.rabbitmq.com/erlang-client-user-guide.html, section « Abonnement à Queues »)

Pour autant que je comprends, vous avez besoin d'envoyer des messages de file d'attente par WebSockets à clients Vous devez donc vous abonner à la file d'attente en cours de traitement pour communiquer avec le client. Et recevez des messages dans "recevoir ... end" ou en handle_info (dépend de la réalisation)

AJOUT

Je regardais dans les sources gen_bunny ... mochi/gen_bunny dépend de mochi/amqp_client qui fournissent amqp_channel: abonnez-vous/3 (voir https://github.com/mochi/amqp_client/blob/master/src/amqp_channel.erl#L177) vous pouvez l'utiliser pour vous abonner

+0

Merci pour la réponse ... Le problème est que l'application utilise déjà gen_bunny. Cependant, je vais aussi essayer de erlang client ... –

+0

Mettre à jour ma réponse – couchemar

+0

erlang client est facile à configurer. –

Questions connexes