kxlf
using System;
using System.Collections.Generic;
using System.Text;
using TIBCO.EMS;

namespace EII.JMS
{
public class MsgReceiver
{
private TopicSubscriber subscriber;
private TopicConnection connection;

public string ServerUrl { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; }
public string TopicName { get; set; }
public string DurableName { get; set; }
public string ClientID { get; set; }

/// <summary>
/// JMS消息接收器
/// </summary>
/// <param name="serverUrl">服务器地址</param>
/// <param name="userName">用户名</param>
/// <param name="passWord">密码</param>
/// <param name="topicName">Topic名称</param>
/// <param name="durableName">Durable名称</param>
/// <param name="clientID">客户端ID</param>
public MsgReceiver(string serverUrl, string userName, string passWord, string topicName, string durableName, string clientID)
{
this.ServerUrl = serverUrl;
this.UserName = userName;
this.PassWord = passWord;
this.TopicName = topicName;
this.DurableName = durableName;
this.ClientID = clientID;
}

/// <summary>
/// 连接服务器
/// </summary>
/// <returns></returns>
public bool ConnectServer()
{
try
{
TopicConnectionFactory factory
= new TIBCO.EMS.TopicConnectionFactory(ServerUrl);
connection
= factory.CreateTopicConnection(UserName, PassWord);

if (ClientID != null)
{
connection.ClientID
= ClientID;
}

TopicSession session
= connection.CreateTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic
= session.CreateTopic(TopicName);
subscriber
= session.CreateDurableSubscriber(topic, DurableName);
connection.Start();
return true;
}
catch (EMSException e)
{
throw new Exception(e.ToString());
}
}

/// <summary>
/// 接收消息
/// </summary>
/// <returns></returns>
public string Receive()
{
try
{
BytesMessage message
= subscriber.Receive() as BytesMessage;

if (message != null)
{
byte[] file = new byte[message.BodyLength];
message.ReadBytes(file);

return System.Text.Encoding.UTF8.GetString(file);
}
else
{
return null;
}
}
catch (Exception ex)
{
throw ex;
}
}

/// <summary>
/// 关闭连接
/// </summary>
public void CloseConn()
{
try
{
this.connection.Close();
}
catch (Exception ex)
{
throw ex;
}
}
}
}

 

分类:

技术点:

相关文章:

  • 2021-05-29
  • 2022-01-08
  • 2021-06-24
  • 2021-09-24
  • 2021-07-02
  • 2021-11-15
  • 2022-01-16
  • 2021-10-19
猜你喜欢
  • 2021-04-24
  • 2021-08-23
  • 2021-11-18
  • 2021-11-04
  • 2021-07-28
  • 2021-07-20
  • 2021-12-23
相关资源
相似解决方案