You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.8 KiB
115 lines
2.8 KiB
10 months ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Text;
|
||
|
using Apache.NMS;
|
||
|
using Apache.NMS.ActiveMQ;
|
||
|
|
||
|
namespace SiaSun.LMS.Common
|
||
|
{
|
||
|
public class ActiveMsg
|
||
|
{
|
||
|
#region 属性
|
||
|
|
||
|
private string _url;
|
||
|
/// <summary>服务地址
|
||
|
/// 服务地址
|
||
|
/// </summary>
|
||
|
public string url
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return this._url;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
this._url = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private IConnection _connection;
|
||
|
/// <summary>连接
|
||
|
/// 连接
|
||
|
/// </summary>
|
||
|
public IConnection connection
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return this._connection;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
this._connection = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 方法
|
||
|
|
||
|
/// <summary>构造
|
||
|
/// 构造
|
||
|
/// </summary>
|
||
|
public ActiveMsg()
|
||
|
{
|
||
|
this.url = SiaSun.LMS.Common.StringUtil.GetConfig("ActiveMQUrl");
|
||
|
IConnectionFactory factory = new ConnectionFactory(this.url);
|
||
|
this.connection = factory.CreateConnection();
|
||
|
}
|
||
|
|
||
|
/// <summary>析构
|
||
|
/// 析构
|
||
|
/// </summary>
|
||
|
~ActiveMsg()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/// <summary>发送消息
|
||
|
/// 发送消息
|
||
|
/// </summary>
|
||
|
/// <param name="sTopic">消息类型</param>
|
||
|
/// <param name="sMsg">消息体</param>
|
||
|
/// <param name="sResult">返回原因</param>
|
||
|
/// <returns>返回结果</returns>
|
||
|
public bool SendMsg( string sTopic, string sMsg, out string sResult)
|
||
|
{
|
||
|
bool bResult = true;
|
||
|
|
||
|
sResult = string.Empty;
|
||
|
|
||
|
IConnectionFactory factory = new ConnectionFactory(this._url);
|
||
|
|
||
|
try
|
||
|
{
|
||
|
//Create the Session
|
||
|
using (ISession session = this.connection.CreateSession())
|
||
|
{
|
||
|
//Create the Producer for the topic/queue
|
||
|
IMessageProducer prod = session.CreateProducer(
|
||
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(sTopic));
|
||
|
|
||
|
//Send Messages
|
||
|
ITextMessage msg = prod.CreateTextMessage();
|
||
|
msg.Text = sMsg;
|
||
|
|
||
|
prod.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
bResult = false;
|
||
|
|
||
|
sResult = ex.Message.ToString();
|
||
|
}
|
||
|
finally
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
return bResult;
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
}
|