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;
}
I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
The process is like this:
- Client connects to SignalR hub
- Client pushes a message to SignalR hub.
- SignalR Hub publishes the message to RabbitMq Queue.
- This is critical (I don't know this part)- Something is subscribed to RabbitMq queue
- 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
add a comment |
I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
The process is like this:
- Client connects to SignalR hub
- Client pushes a message to SignalR hub.
- SignalR Hub publishes the message to RabbitMq Queue.
- This is critical (I don't know this part)- Something is subscribed to RabbitMq queue
- 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
add a comment |
I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
The process is like this:
- Client connects to SignalR hub
- Client pushes a message to SignalR hub.
- SignalR Hub publishes the message to RabbitMq Queue.
- This is critical (I don't know this part)- Something is subscribed to RabbitMq queue
- 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
I have a SignalR application that uses RabbitMq for message processing in the background. (.Net Core 2.1)
The process is like this:
- Client connects to SignalR hub
- Client pushes a message to SignalR hub.
- SignalR Hub publishes the message to RabbitMq Queue.
- This is critical (I don't know this part)- Something is subscribed to RabbitMq queue
- 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
rabbitmq asp.net-core-signalr
asked Nov 16 '18 at 17:43
LukaLuka
1,14212145
1,14212145
add a comment |
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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