一. ActiveMQ介紹
通過ActiveMQ消息服務交換消息。消息生産者将消息發送至消息服務,消息消費者則從消息服務接收這些消息。這些消息傳送操作是使用一組實作 ActiveMQ應用程式設計接口 (API) 的對象來執行的。
二. 軟體開發目的
2.1 軟體目的
利用消息中間件接口JMS、消息伺服器ActiveMQ 和Java Swing實作一個簡單的聊天工具,掌握消息中間件的應用。
2. 2程式要求
- 實作界面化的聊天工具,支援二人之間互發消息。
- 發送消息過程中,發送這首先把消息發送到消息伺服器ActiveMQ,接收者從消息伺服器上取消息;消息發送者和接收者不需要同時運作(線上),實作即使對方處在離線狀态下也可以進行消息的發送和接收。
三. 軟體實作
3.1 功能實作
使用MessageSender進行消息發送,使用MessageReceiver進行消息接收。在Swing中,當使用者點選開始聊天按鈕後MessageReceiver會建立一個線程進行監聽消息,如果有新的消息則向對話框中添加資訊。
關鍵線程函數:
MessageSender messageSender = new MessageSender(targe,url,user,password,str);
new Thread(messageSender).start();
new Thread(new MessageReceiver(user,url,null,null,textArea)).start();
MessageReceiver中的線程操作,如果接收到資訊就更改資訊。
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
textArea.append("receive : "+ receiveMessage.getText()+"\n");;
} catch (JMSException e) {
e.printStackTrace();
}}});
四.運作結果
當對方不線上時,依舊可以發送消息,當對方上線後可以正常接收。
代碼連結:https://github.com/BlackJocker1995/MiddlewareWork03