Уникальные сеансы служебной шины Azure для сообщений уникальных клиентов и как устанавливать не посреднические соединения? - PullRequest
0 голосов
/ 29 мая 2018

Я планирую выбрать стандартный уровень очереди служебной шины Azure, поскольку мне нужно создать очередь с включенной сессией, чтобы тысячи моих пользователей могли инициировать сессию (используя динамический идентификатор сеанса, генерируемый при нажатии кнопки) и получать сообщение вочередь против этого идентификатора сеанса, т.е. сообщения, предназначенного только для них (один клиент не получает сообщение, предназначенное для другого клиента, но при этом гарантирует, что все пользователи могут получать свои сообщения параллельно с другими пользователями):

  1. Может ли очередь сервисной шины с одним сеансом обрабатывать этот сценарий, когда каждый пользователь подключается (по нажатию кнопки) к шине, используя фильтр сеанса (используя динамический идентификатор сеанса), и получает ответ на этот идентификатор сеанса, так что пользователь получает только егосообщение, и каждый пользователь может получать его / ее сообщение параллельно, в то время как другие пользователи также получают сообщения в то же время?

  2. Как я могу установить неблокированные подключения к этой очереди шины обслуживания с включенной сессиейчтобы я не бил 1000 брокерских соединений лимЭто?Создает ли следующий код (как отправитель, так и получатель) соединения без посредников?

Пример отправителя

1.В следующем коде отправитель устанавливает соединение без посредников при отправке сообщения?

2.Если нет, то какой код является правильным для инициирования соединения без посредников?

QueueClient responseClient = MessagingFactory.CreateFromConnectionString("Endpoint=sb://XXXXXX").CreateQueueClient("ResponseQueue");

BrokeredMessage response = new BrokeredMessage();
response.SessionId = "XYZ";
response.MessageId = "XYZ";

responseClient.Send(response);

Sample Receiver

1.В следующем коде получатель устанавливает соединение без посредников при получении сообщения?

2.Если нет, то какой код является правильным для инициирования соединения без посредников?

3.Должен ли я установить время на TimeSpan (0, 0, 0), чтобы сделать это соединение без посредников?

QueueClient responseClient = MessagingFactory.CreateFromConnectionString("Endpoint=sb://XXXXXX").CreateQueueClient("ResponseQueue");

MessageSession receiver = responseClient.AcceptMessageSession("XYZ");
BrokeredMessage receivedMessage = receiver.Receive(new TimeSpan(0, 0, 20));

if (receivedMessage != null)
{
                Console.WriteLine(receivedMessage.MessageId + " " + receivedMessage.SessionId);
                receivedMessage.Complete();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...