一. 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();
}}});
四.运行结果
当对方不在线时,依旧可以发送消息,当对方上线后可以正常接收。
网友评论