ASP.NET 操作消息队列
1
public partial class _Default : System.Web.UI.Page
2
{
3
private string queuePath = @".\Private$\mydemoqueues";
4
protected void Page_Load(object sender, EventArgs e)
5
{
6
//异步获取消息
7
GetQueueMessage();
8
}
9
protected void Button1_Click(object sender, EventArgs e)
10
{
11
MessageQueue mq;
12
if(MessageQueue.Exists(@".\Private$\mydemoqueues"))
13
{
14
mq=new MessageQueue(@".\Private$\mydemoqueues");
15
}
16
else
17
{
18
mq = MessageQueue.Create(@".\Private$\mydemoqueues");
19
}
20
BinaryWriter writer=new BinaryWriter(new MemoryStream());
21
writer.Write(this.TextBox1.Text.Trim());
22
Message msg=new Message();
23
msg.BodyStream = writer.BaseStream;
24
msg.Label = "发送信息,飘渺峰测试";
25
mq.Send(msg);
26
27
}
28
protected void Button2_Click(object sender, EventArgs e)
29
{
30
MessageQueue mq;
31
Message msg=new Message();
32
string result;
33
if (MessageQueue.Exists(queuePath))
34
{
35
mq=new MessageQueue(queuePath);
36
}
37
else
38
{
39
mq = MessageQueue.Create(queuePath);
40
}
41
try
42
{
43
mq.MaximumQueueSize = 1000000;
44
msg = mq.Receive(new TimeSpan(0, 0, 3));
45
BinaryReader br=new BinaryReader(msg.BodyStream);
46
result=new string(br.ReadChars(Convert.ToInt32(msg.BodyStream.Length)));
47
this.TextBox2.Text = result;
48
mq.Close();
49
}
50
catch (Exception)
51
{
52
Response.Write("没有消息可以接收!");
53
}
54
}
55
/// <summary>
56
/// 异步获取消息队列
57
/// </summary>
58
private void GetQueueMessage()
59
{
60
MessageQueue mq=new MessageQueue(queuePath);
61
mq.Formatter = new XmlMessageFormatter(new Type[] {typeof (string)});
62
mq.PeekCompleted+=new PeekCompletedEventHandler(MyMessageCompleted);
63
mq.BeginPeek();
64
return;
65
}
66
67
private void MyMessageCompleted(object sender, PeekCompletedEventArgs e)
68
{
69
MessageQueue mq = (MessageQueue) sender;
70
Message msg = mq.EndPeek(e.AsyncResult);
71
BinaryReader reader=new BinaryReader(msg.BodyStream);
72
string temp=new string(reader.ReadChars(Convert.ToInt32(msg.BodyStream.Length)));
73
//Response.Write("这是异步队列信息:"+temp);
74
this.TextBox2.Text = temp;
75
mq.BeginPeek();
76
return;
77
}
78
79
private void SendMessage()
80
{
81
MessageQueue mq;
82
if (MessageQueue.Exists(@".\Private$\mydemoqueues"))
83
{
84
mq = new MessageQueue(@".\Private$\mydemoqueues");
85
}
86
else
87
{
88
mq = MessageQueue.Create(@".\Private$\mydemoqueues");
89
}
90
BinaryWriter writer = new BinaryWriter(new MemoryStream());
91
writer.Write("sdfsdfsd");
92
Message msg = new Message();
93
msg.BodyStream = writer.BaseStream;
94
msg.Label = "发送信息,飘渺峰测试";
95
mq.Send(msg);
96
}
public partial class _Default : System.Web.UI.Page2
{3
private string queuePath = @".\Private$\mydemoqueues";4
protected void Page_Load(object sender, EventArgs e)5
{6
//异步获取消息7
GetQueueMessage();8
}9
protected void Button1_Click(object sender, EventArgs e)10
{11
MessageQueue mq;12
if(MessageQueue.Exists(@".\Private$\mydemoqueues"))13
{14
mq=new MessageQueue(@".\Private$\mydemoqueues");15
}16
else17
{18
mq = MessageQueue.Create(@".\Private$\mydemoqueues"); 19
}20
BinaryWriter writer=new BinaryWriter(new MemoryStream());21
writer.Write(this.TextBox1.Text.Trim());22
Message msg=new Message();23
msg.BodyStream = writer.BaseStream;24
msg.Label = "发送信息,飘渺峰测试";25
mq.Send(msg);26

27
}28
protected void Button2_Click(object sender, EventArgs e)29
{30
MessageQueue mq;31
Message msg=new Message();32
string result;33
if (MessageQueue.Exists(queuePath))34
{35
mq=new MessageQueue(queuePath);36
}37
else38
{39
mq = MessageQueue.Create(queuePath);40
}41
try42
{43
mq.MaximumQueueSize = 1000000;44
msg = mq.Receive(new TimeSpan(0, 0, 3));45
BinaryReader br=new BinaryReader(msg.BodyStream);46
result=new string(br.ReadChars(Convert.ToInt32(msg.BodyStream.Length)));47
this.TextBox2.Text = result;48
mq.Close();49
}50
catch (Exception)51
{52
Response.Write("没有消息可以接收!");53
}54
}55
/// <summary>56
/// 异步获取消息队列57
/// </summary>58
private void GetQueueMessage()59
{60
MessageQueue mq=new MessageQueue(queuePath);61
mq.Formatter = new XmlMessageFormatter(new Type[] {typeof (string)});62
mq.PeekCompleted+=new PeekCompletedEventHandler(MyMessageCompleted);63
mq.BeginPeek();64
return;65
}66

67
private void MyMessageCompleted(object sender, PeekCompletedEventArgs e)68
{69
MessageQueue mq = (MessageQueue) sender;70
Message msg = mq.EndPeek(e.AsyncResult);71
BinaryReader reader=new BinaryReader(msg.BodyStream);72
string temp=new string(reader.ReadChars(Convert.ToInt32(msg.BodyStream.Length)));73
//Response.Write("这是异步队列信息:"+temp);74
this.TextBox2.Text = temp;75
mq.BeginPeek();76
return;77
}78

79
private void SendMessage()80
{81
MessageQueue mq;82
if (MessageQueue.Exists(@".\Private$\mydemoqueues"))83
{84
mq = new MessageQueue(@".\Private$\mydemoqueues");85
}86
else87
{88
mq = MessageQueue.Create(@".\Private$\mydemoqueues");89
}90
BinaryWriter writer = new BinaryWriter(new MemoryStream());91
writer.Write("sdfsdfsd");92
Message msg = new Message();93
msg.BodyStream = writer.BaseStream;94
msg.Label = "发送信息,飘渺峰测试";95
mq.Send(msg);96
}



浙公网安备 33010602011771号