저는 C#으로 ActiveMQ를 사용하는 초보자입니다. 하나의 버튼과 하나의 라벨로 간단한 윈도우 폼을 만들었습니다. 버튼을 클릭하면 큐에 메시지를 보내고 레이블은 방금 보낸 메시지로 초기화됩니다. 물론 직접 레이블을 초기화 할 수는 있지만 내 레이블을 업데이트하려면 큐에서 메시지를 소비하는 방식으로 양식을 작성해야합니다.방금 ActiveMQ 및 C와 함께 보낸 메시지 처리
문제는 내가 라벨을 업데이트하기 위해 동일한 양식의 메시지를 처리하지 못한다는 것입니다. 내 소비자 코드는 전혀 호출되지 않았지만 내 양식의 Load 이벤트에서 초기화됩니다. 내 창문 양식을 닫고 다시 시작한 다음 내 레이블도 업데이트되어 있지만 내가 그것을 닫고 다시 열하지 않으려면 여기에 코드를
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
InitializeHandlerAMQ();
}
private void InitializeHandlerAMQ()
{
Tchat tchat = null;
IDestination dest = _session.GetQueue(QUEUE_DESTINATION);
using(IMessageConsumer consumer = _session.CreateConsumer(dest))
{
IMessage message;
while((message = consumer.Receive(TimeSpan.FromMilliseconds(2000))) != null)
{
var objectMessage = message as IObjectMessage;
if(objectMessage != null)
{
tchat = objectMessage.Body as Tchat;
if (tchat != null)
{
textBox2.Text += string.Format("{0}{1}", tchat.Message, Environment.NewLine);
}
}
}
}
}
을합니다.
의견이 있으십니까?
다른 리소스 : ".NET (샘플 채팅 응용 프로그램)의 ActiveMQ"https://code.msdn.microsoft.com/windowsapps/ActiveMQ-in-NET-Sample-9406441a –