Erlang运行时的下载地址: http://erlang.org/download/
消息队列服务的下载地址:https://www.rabbitmq.com/download.html
参考资料:
示例:https://github.com/das2017/06-RabbitMQDemo
示例:
<appSettings>
<add key="AppID" value="150107"/>
<add key="RabbitMQUri" value="amqp://flight:yyabc123@139.198.13.12:4128/Flight" />
</appSettings>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RabbitMQ.Client;
using System.Configuration;
namespace SendMQ
{
class Program
{
static void Main(string[] args)
{
//var factory = new ConnectionFactory();
//factory.HostName = "127.0.0.1";
//factory.UserName = "admin";
//factory.Password = "admin";
//factory.VirtualHost = "test";
var factory = new ConnectionFactory { Uri = new Uri(ConfigurationManager.AppSettings["RabbitMQUri"]) };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
string queue = "MQ";
channel.QueueDeclare(queue, false, false, false, null); //定义一个队列
while (true)
{
Console.Write("请输入要发送的消息:");
var message = Console.ReadLine();
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish("", queue, null, body); //发送消息
Console.WriteLine("已发送的消息: {0}", message);
}
}
}
}
}
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace GetMQ
{
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory();
factory.HostName = "127.0.0.1";
factory.UserName = "admin";
factory.Password = "admin";
factory.VirtualHost = "test";
// var factory = new ConnectionFactory { Uri =new Uri(ConfigurationManager.AppSettings["RabbitMQUri"]) };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
string queue = "MQ";
channel.QueueDeclare(queue, false, false, false, null); //定义一个队列
Console.WriteLine("准备接收消息...");
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (s, e) =>
{
var body = e.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine("接收到的消息: {0}", message);
};
channel.BasicConsume(queue, true, consumer); //开启消费者与通道、队列关联
Console.ReadLine();
}
}
}
}