Я использую rabbit-Mq в своем веб-приложении (Asp.net-MVC 4.0). Мое требование - отправить сообщение конкретному пользователю. Предположим, что user1 находится в сети, и он отправляет сообщение пользователю2 кроликом-мк. Он должен быть получен только «user2». Код, который я использовал, - это шаблон, который хранит сообщение в очереди, и всякий раз, когда пользователь нажимает на него, он получит это сообщение, но в моем случае нет ограничений для конкретного пользователя. Любой может получить это сообщение, которое является неправильным, и я должен это обработать. Пожалуйста, помогите мне в этом.Отправка сообщений rabbitMq
Есть ли у нас что-то в rabbit-Mq, которое может отличить правильное сообщение от пользователя/потребителя? Можем ли мы установить ключ с сообщением и проверить ключ во время приема? Возможно ли это?
Ниже я пишу код, который я использую для отправки и получения сообщений
public ActionResult SendMessage(MessagingModel ObjModel)
{ var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
Message = ObjModel.Message;
channel.QueueDeclare("MessageQueue", true, false, false, null);
var body = Encoding.UTF8.GetBytes(ObjModel.Message);
channel.BasicPublish("", "MessageQueue", null, body);
}
}
}
public JsonResult RecieveMessage()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("MessageQueue", true, false, false, null);
bool noAck = true;
BasicGetResult result = channel.BasicGet("MessageQueue", noAck);
if (result == null)
{
Message = "No Messages Found.";
}
else
{
IBasicProperties props = result.BasicProperties;
byte[] Body = result.Body;
Message = Encoding.Default.GetString(Body);
}
}
}