powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SignalR + RabbitMQ
5 сообщений из 5, страница 1 из 1
SignalR + RabbitMQ
    #39459482
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

У меня есть ASP.NET MVC сайт и для push-уведомлений я использую SignalR.
https://metanit.com/sharp/mvc5/16.2.php

Также есть отдельный сервер, который отправляет сообщения через RabbitMQ.

Контроллеры отправляют клиенту View и просто висеть и ждать сообщений в них не получится.
В классе ChatHub в методе Connect можно прописать while(true) и ждать сообщений от RabbitMQ, но это как-то глупо выглядит.

Вопрос: Каким образом можно подписаться на получение RabbitMQ сообщений в ASP.NET MVC?
...
Рейтинг: 0 / 0
SignalR + RabbitMQ
    #39459683
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не уверен что заработает до конца, но чет типо такого я думаю
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public class MvcApplication : System.Web.HttpApplication
    {
        private static IConnection connection;
        private static IModel channel;

        protected void Application_Start()
        {
      .....
            this.SubscribeRabbitMq();
        }

        protected void Application_End()
        {
            channel.Close(200, "Асталависта!");
            connection.Close();
        }

        private void SubscribeRabbitMq()
        {
            var factory = new ConnectionFactory() { HostName = "localhost" };
            connection = factory.CreateConnection();
            channel = connection.CreateModel();
            channel.QueueDeclare(queue: "r2d2", durable: false, exclusive: false, autoDelete: false, arguments: null);

            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                // Display message with signalr
                var context = GlobalHost.ConnectionManager.GetHubContext<SomeHub>();
                 context.Clients.All.Notification(body)
            };
            channel.BasicConsume(queue: "hello", noAck: true, consumer: consumer);
        }
    }
...
Рейтинг: 0 / 0
SignalR + RabbitMQ
    #39459687
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu, дык дали бы ссылку на мопед :)

http://www.csharpcity.com/2016/consuming-rabbitmq-messages-in-asp-net-mvc/
...
Рейтинг: 0 / 0
SignalR + RabbitMQ
    #39459703
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ага извиняюсь)
...
Рейтинг: 0 / 0
SignalR + RabbitMQ
    #39459729
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ответы!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SignalR + RabbitMQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]