Where to subscribe to RabbitMq events in SignalR application





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
The process is like this:




  1. Client connects to SignalR hub

  2. Client pushes a message to SignalR hub.

  3. SignalR Hub publishes the message to RabbitMq Queue.

  4. This is critical (I don't know this part)- Something is subscribed to RabbitMq queue

  5. When the message comes to the queue, something notifies clients by using the SignalR hub.


Now the problem I have is in the step 4. That something, I don't know where to put it.



First I tough to put it into SignalR hub, so SignalR hub would subscribe to RabbitMq queue and handle the messages. But SignalR hubs are short-lived and recreated on each request, so when the RabbitMq message is dequeued, the SignalR hub context is already disposed.



Then I tough to create a singleton service at application start and do the subscription to RabbitMq queues there, but at application start I don't know who are the clients that need's to subscribe to the RabbitMq queue.
Requirements are that a subscription is made for each consumer client that connects to the SignalR hub.



Because I use "topic" exchange where the topic and clientId is know only when the consumer client is connected, i need to subscribe to RabbitMq when the consumer client connects to SignalR hub ie. (OnConnected method on SignalR hub)



I need help on this, how to do the subscription to RabbitMq queue on SignalR client connected, and this needs to be long lived.and cliendId










share|improve this question





























    0















    I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
    The process is like this:




    1. Client connects to SignalR hub

    2. Client pushes a message to SignalR hub.

    3. SignalR Hub publishes the message to RabbitMq Queue.

    4. This is critical (I don't know this part)- Something is subscribed to RabbitMq queue

    5. When the message comes to the queue, something notifies clients by using the SignalR hub.


    Now the problem I have is in the step 4. That something, I don't know where to put it.



    First I tough to put it into SignalR hub, so SignalR hub would subscribe to RabbitMq queue and handle the messages. But SignalR hubs are short-lived and recreated on each request, so when the RabbitMq message is dequeued, the SignalR hub context is already disposed.



    Then I tough to create a singleton service at application start and do the subscription to RabbitMq queues there, but at application start I don't know who are the clients that need's to subscribe to the RabbitMq queue.
    Requirements are that a subscription is made for each consumer client that connects to the SignalR hub.



    Because I use "topic" exchange where the topic and clientId is know only when the consumer client is connected, i need to subscribe to RabbitMq when the consumer client connects to SignalR hub ie. (OnConnected method on SignalR hub)



    I need help on this, how to do the subscription to RabbitMq queue on SignalR client connected, and this needs to be long lived.and cliendId










    share|improve this question

























      0












      0








      0


      1






      I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
      The process is like this:




      1. Client connects to SignalR hub

      2. Client pushes a message to SignalR hub.

      3. SignalR Hub publishes the message to RabbitMq Queue.

      4. This is critical (I don't know this part)- Something is subscribed to RabbitMq queue

      5. When the message comes to the queue, something notifies clients by using the SignalR hub.


      Now the problem I have is in the step 4. That something, I don't know where to put it.



      First I tough to put it into SignalR hub, so SignalR hub would subscribe to RabbitMq queue and handle the messages. But SignalR hubs are short-lived and recreated on each request, so when the RabbitMq message is dequeued, the SignalR hub context is already disposed.



      Then I tough to create a singleton service at application start and do the subscription to RabbitMq queues there, but at application start I don't know who are the clients that need's to subscribe to the RabbitMq queue.
      Requirements are that a subscription is made for each consumer client that connects to the SignalR hub.



      Because I use "topic" exchange where the topic and clientId is know only when the consumer client is connected, i need to subscribe to RabbitMq when the consumer client connects to SignalR hub ie. (OnConnected method on SignalR hub)



      I need help on this, how to do the subscription to RabbitMq queue on SignalR client connected, and this needs to be long lived.and cliendId










      share|improve this question














      I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
      The process is like this:




      1. Client connects to SignalR hub

      2. Client pushes a message to SignalR hub.

      3. SignalR Hub publishes the message to RabbitMq Queue.

      4. This is critical (I don't know this part)- Something is subscribed to RabbitMq queue

      5. When the message comes to the queue, something notifies clients by using the SignalR hub.


      Now the problem I have is in the step 4. That something, I don't know where to put it.



      First I tough to put it into SignalR hub, so SignalR hub would subscribe to RabbitMq queue and handle the messages. But SignalR hubs are short-lived and recreated on each request, so when the RabbitMq message is dequeued, the SignalR hub context is already disposed.



      Then I tough to create a singleton service at application start and do the subscription to RabbitMq queues there, but at application start I don't know who are the clients that need's to subscribe to the RabbitMq queue.
      Requirements are that a subscription is made for each consumer client that connects to the SignalR hub.



      Because I use "topic" exchange where the topic and clientId is know only when the consumer client is connected, i need to subscribe to RabbitMq when the consumer client connects to SignalR hub ie. (OnConnected method on SignalR hub)



      I need help on this, how to do the subscription to RabbitMq queue on SignalR client connected, and this needs to be long lived.and cliendId







      rabbitmq asp.net-core-signalr






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 16 '18 at 17:43









      LukaLuka

      1,14212145




      1,14212145
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53342897%2fwhere-to-subscribe-to-rabbitmq-events-in-signalr-application%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53342897%2fwhere-to-subscribe-to-rabbitmq-events-in-signalr-application%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python