1、消息发送程序
public class UMProducer { private MessageProducer producer = null; private Connection connection = null; private Session session = null; public void start(){ try{ //自动重连 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "failover://(tcp://127.0.0.1:61616?tcpNoDelay=true)"); connection = connectionFactory.createConnection(); ((ActiveMQConnection)connection).setUseAsyncSend(true); //异步发送消息 connection.start(); session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE); //使用事务时,将忽略ACK Destination destination = session.createQueue("queue_msg"); producer = session.createProducer(destination); producer.setDeliveryMode(DeliveryMode.PERSISTENT); //消息持久化 producer.setTimeToLive(1000 * 60 * 60 * 24); //消息过期时间,单位为 毫秒 int i = 0; while(true){ ++i; MessageEntity entity = new MessageEntity(); entity.setMessage("activeMQ mseeage " + i); ObjectMessage message = session.createObjectMessage(entity); producer.send(message); //在事务性会话中,只有commit之后,消息才会真正到达目的地 //commit动作比较耗时,采取批量commit的策略以提高性能 if(i % 1000 == 0){ session.commit(); } System.out.println("waiting... " + i); } }catch(Exception ex){ ex.printStackTrace(); } } public void stop(){ try{ if(session != null) { session.close(); } if(connection != null) { connection.close(); } if(producer != null){ producer.close(); } }catch(Exception ex){ ex.printStackTrace(); } } public static void main(String[] args) { UMProducer producer = new UMProducer(); producer.start(); } }
2、消息接收程序
public class UMConsumer { private String name; private MessageConsumer consumer = null; private Connection connection = null; private Session session = null; public UMConsumer(String name){ this.name = name; } public void start(){ try{ //自动重连 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "failover://(tcp://127.0.0.1:61616?tcpNoDelay=true)"); connection = connectionFactory.createConnection(); connection.start(); session = connection.createSession(Boolean.FALSE, Session.CLIENT_ACKNOWLEDGE); Destination destination = session.createQueue("queue_msg"); consumer = session.createConsumer(destination); //异步接收消息 consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { try{ if(message instanceof ObjectMessage){ ObjectMessage omsg = (ObjectMessage)message; MessageEntity entity = (MessageEntity)omsg.getObject(); System.out.println(name + " 收到消息:" + entity.getMessage()); //确认消息 message.acknowledge(); } }catch(Exception ex){ ex.printStackTrace(); } } }); }catch(Exception ex){ ex.printStackTrace(); } } public void stop(){ try{ if(session != null) { session.close(); } if(connection != null) { connection.close(); } if(consumer != null){ consumer.close(); } }catch(Exception ex){ ex.printStackTrace(); } } public static void main(String[] args) { UMConsumer consumer = new UMConsumer("UMConsumer Name"); consumer.start(); } }
相关推荐
在Windows编程中,MFC(Microsoft Foundation ...这个例子将帮助你更好地掌握MFC中如何使用`PostMessage`来实现消息的发送和接收。通过实践和学习,你将能够熟练运用这一技术,提升你的Windows应用程序开发能力。
在我们的例子中,我们将使用Spring与ActiveMQ的集成,以便在Web应用中发送和接收消息。 集成步骤如下: 1. **配置ActiveMQ服务器**:首先,你需要在本地或远程服务器上安装并运行ActiveMQ。下载并解压ActiveMQ,...
在这个简单的例子中,我们将探讨如何利用Ajax与ActiveMQ交互,发送和接收消息。首先,你需要在服务器端设置一个ActiveMQ实例,可以通过下载并安装ActiveMQ来完成。安装完成后,启动ActiveMQ服务,这通常会开启一个...
linux和windows两种环境都可以
在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步通信和解耦。本篇文章将深入...
VC 演示EXE程序通信基于消息机制,要同时编译运行两个子程序,在Sender端发送消息,在Receiver端接收sender端发送的消息,截图是sender端的运行效果。其中发送消息有三种方法,请看以下代码: //发送消息命令一 ...
在这个例子中,客户端订阅了`/topic/messages`主题,当服务器发送消息到这个主题时,客户端会收到消息。同时,客户端也能够通过`stompClient.send()`方法向服务器发送消息。 总结来说,Spring Boot通过集成...
Windows上实现snmp发送与接收的例子程序,发送的例子是发送的trap,接收例子是接收后提取出数据包中的oid等数据
在运行此程序时,先启动服务器,然后启动客户端,客户端将向服务器发送一条消息,并接收服务器的响应。这个简单的例子展示了Java Socket基本的发送和接收机制,但实际的网络应用可能会更复杂,包括多线程处理多个...
在本文中,我们将深入探讨如何使用SpringBoot、ActiveMQ和MQTT来实现消息的发送与接收。这是一个典型的分布式系统中的消息通信场景,其中SpringBoot作为应用程序框架,ActiveMQ作为消息中间件,而MQTT(Message ...
在VB(Visual Basic)编程中,Socket控件是...这个例子就是一个基础的演示,帮助开发者理解如何利用Socket控件在VB中实现文件发送和接收功能。在实际应用中,可能还需要考虑错误处理、多线程、断点续传等更复杂的场景。
下面是一个简单的使用SPComm控件发送消息的例子: ```delphi uses SpComm; var SP: TSpComm; Message: String; begin // 创建SPComm对象 SP := TSpComm.Create(Self); // 设置串口参数 SP....
标题中的“E4A配合易语言服务器发送推送消息例子源码”揭示了这是一个关于使用E4A(Easy4Android)和易语言开发的服务器端配合实现消息推送的示例项目。这个项目的主要目的是教给开发者如何在Android应用程序中集成...
MFC实现的窗口程序,集成了发送和接收RTP包的功能,接收到的视频用FFmpeg解码并显示出来。该例子代码对应我博客上的一篇文章:https://blog.csdn.net/zhoubotong2012/article/details/86510032
在SNMP中,Trap是一种被动的通知机制,当网络设备上发生特定事件(如接口状态改变或内存不足)时,设备会主动向网络管理站发送Trap消息。`TrapReceiver_SNMP4J.java`可能是一个基于SNMP4J库的Trap接收器。SNMP4J是...
在MFC中使用TCP,你需要创建一个基于CAsyncSocket类的对象,然后调用成员函数来监听、连接、发送和接收数据。例如,你可以使用OnAccept()处理新的连接请求,OnReceive()处理接收到的数据,以及OnConnect()处理连接...
下面展示一个简单的发送消息的例子: ```csharp byte[] data = Encoding.UTF8.GetBytes("Hello, Client!"); stream.Write(data, 0, data.Length); ``` 接收消息的过程则涉及到异步编程,因为数据可能分多次到达。...
下面我们将详细探讨`sendStreamFile.php`和`receiveStreamFile.php`这两个文件如何实现流文件的发送和接收。 首先,我们来看`sendStreamFile.php`。这个脚本的主要任务是将一个文件以流的形式发送出去。通常,这...
基于jrtplib实现了RTP发送和接收功能,支持发送H264、PS、TS等文件流,接收端读取发送端发来的数据后,取Payload数据,通过FFmpeg分离、解码出视频,将RGB格式的视频在窗口中显示。 了解更多内容请参阅我博客上的...