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. word20161204

    CA, certification authority / 证书颁发机构 cache / 高速缓存 cache file / 缓存文件 caching / 缓存 caching resolver /  ...

  2. Button圆角处理

    <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="ht ...

  3. 35 网络相关函数(三)——live555源码阅读(四)网络

    35 网络相关函数(三)——live555源码阅读(四)网络 35 网络相关函数(三)——live555源码阅读(四)网络 简介 5)NoReuse不重用地址类 6)initializeWinsock ...

  4. uploadify插件的功能应用

    一.相关key值介绍 uploader:uploadify.swf文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. scri ...

  5. 前端之css、JavaScript和DOM

    css position 一般组合 relative+absolute,以relative为父元素,absolute依照relative进行定位. opcity: 0.5 透明度 z-index: 层 ...

  6. django 的文件上传

    template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...

  7. spring ext 跨域

    read方法中调用的response对象是父类BaseController的一个成员变量. spring默认bean的生命周期Score为singleton单例模式. 当多线程并发使用同一bean, ...

  8. 【GoLang】GoLang 中 make 与 new的区别

    make.new操作 make用于内建类型(map.slice 和channel)的内存分配.new用于各种类型的内存分配. 内建函数new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零 ...

  9. NPOI教程

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. NPOI 官方网站:http://npoi.codeplex.com/( ...

  10. 如何使用参数 appActivity+appPackage 和 app

    本文针对RobotFrameWork中AppiumLibrary测试库. 首先,Open Application 这个方法不能向手机中安装应用,需要提前在手机中安装好,如使用 adb install ...