1. using RabbitMQ.Client;
  2. using RabbitMQ.Client.Events;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13.  
  14. namespace WindowsFormsApplication1
  15. {
  16. public partial class Form1 : Form
  17. {
  18. string hostName = "192.168.1.61";
  19. string userName = "test";
  20. string passWord = "";
  21. //信息是否持久化
  22. bool durable = false;
  23.  
  24. public Form1()
  25. {
  26. InitializeComponent();
  27. //防止多线程报错
  28. System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
  29. textBox2.ReadOnly = true;
  30. textBox2.ScrollBars = ScrollBars.Vertical;
  31. var thrd = new Thread(GetMessage);
  32. thrd.IsBackground = true;
  33. thrd.Name = "DownLoad";
  34. thrd.Start();
  35. }
  36.  
  37. private void button1_Click(object sender, EventArgs e)
  38. {
  39.  
  40. var factory = new ConnectionFactory();
  41. factory.HostName = hostName;
  42. factory.UserName = userName;
  43. factory.Password = passWord;
  44.  
  45. //创建一个连接
  46. using (var connection = factory.CreateConnection())
  47. {
  48. //创建一个通道
  49. using (var channel = connection.CreateModel())
  50. {
  51. //创建一个队列
  52. channel.QueueDeclare("hello", durable, false, false, null);
  53.  
  54. //信息持久化
  55. var properties = channel.CreateBasicProperties();
  56. properties.Persistent = true;
  57.  
  58. string message = textBox1.Text;
  59. var body = Encoding.UTF8.GetBytes(message);
  60. //发送数据
  61. channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);
  62. }
  63. }
  64. }
  65.  
  66. private void button2_Click(object sender, EventArgs e)
  67. {
  68.  
  69. }
  70.  
  71. private void GetMessage()
  72. {
  73. var factory = new ConnectionFactory();
  74. factory.HostName = hostName;
  75. factory.UserName = userName;
  76. factory.Password = passWord;
  77.  
  78. //创建一个连接
  79. using (var connection = factory.CreateConnection())
  80. {
  81. //创建一个通道
  82. using (var channel = connection.CreateModel())
  83. {
  84. //创建一个队列
  85. channel.QueueDeclare("hello", durable, false, false, null);
  86. channel.BasicQos(, , false);
  87.  
  88. var consumer = new QueueingBasicConsumer(channel);
  89. channel.BasicConsume("hello", true, consumer);
  90.  
  91. while (true)
  92. {
  93. //接收信息
  94. var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
  95. var body = ea.Body;
  96. var message = Encoding.UTF8.GetString(body);
  97. textBox2.Text += message + "\r\n";
  98.  
  99. }
  100.  
  101. }
  102. }
  103. }
  104. }
  105. }

RabbitMQ驱动简单例子的更多相关文章

  1. MangoDB的C#Driver驱动简单例子

    以下是本人学习C#Driver驱动简单的学习例子.GridFS的增删查操作 和 表的增删查改操作. public class MongoServerHelper { public static str ...

  2. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  3. NHibernate的简单例子

    NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...

  4. rabbitmq的简单介绍一

    该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...

  5. Hibernate4.2.4入门(一)——环境搭建和简单例子

    一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...

  6. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  7. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  8. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  9. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

随机推荐

  1. Sqli-LABS通关笔录-18-审计SQL注入2-HTTP头注入

     在此关卡我学习到了 1.只要跟数据库交互的多观察几遍.特别是对于http头这种类型的注入方式. 2. <?php //including the Mysql connect parameter ...

  2. Linux 文件rwx权限问题 chmod 777 XXX 任何人拥有最高权限

    在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读.写.运行设定权限.ls -l:得到-rw-r--r-- 1 apple users 2254 2006-05-20 13 ...

  3. 有关在线OJ网络AC爬虫

    搜索源码 爬取代码 自动登录 在线提交 判断AC

  4. 【GoLang】深入理解slice len cap什么算法? 参数传递有啥蹊跷?

    先上结论 .内置append函数在现有数组的长度 < 时 cap 增长是翻倍的,再往上的增长率则是 1.25,至于为何后面会说. .Go语言中channel,slice,map这三种类型的实现机 ...

  5. C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)

    数组是变量的索引列表,可以在方括号中指定索引来访问数组中的各个成员,其中索引是一个整数,从0开始. 一维数组 多维数组(矩形数组) 数组的数组(锯齿数组) 数组必须在访问之前初始化,数组的初始化有两种 ...

  6. Oracle11g +Win 64+PLSQL9.0

    最近在Oracle11g配置数据库的时候发现了一个问题,就是找不到监听,网上说win7的64位的系统必须装上32位的客户端才能被PLSQL 识别,事实上也是这样,PLSQL 只能识别32位的客户端,所 ...

  7. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解 scrollHeight: 获取对象的滚动高度. scrollLe ...

  8. ios8 新增的 showViewController 和 showDetailViewController

    1.showViewController 先看看说明: You use this method to decouple the need to display a view controller fr ...

  9. Nginx反向代理到Tomcat服务器

    在实际生产中,Tomcat服务器一般不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外由于nginx是专门用于反向代理的服务器,所以很容易实现将java的请求转发到后端交给tomcat ...

  10. ABAP 内表的行列转换-NEW

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: mseg,mkpf. DATA: gd_fieldcat TYPE slis_t_fieldca ...