`
wandejun1012
  • 浏览: 2736959 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jms例子 聊天室

    博客分类:
  • java
 
阅读更多

refurl:http://wenku.baidu.com/view/f6f580c3d5bbfd0a79567336.html

http://aspnetdb.iteye.com/blog/1179469

http://junier.iteye.com/blog/453420 --点对点的

注意点:

1、JMS发送是要用到服务器的,要用ActiveMQ或者OpejJMS作为服务器

 

 

下载apache-activemq-5.2.0-bin.zip:http://download.huihoo.com/apache/activemq/20081221-207.html

 

 

其他参考资料:

refurl:http://flyer2010.iteye.com/blog/662047 (含JMS简单小例子)

 

--Oracle官方JMS教程

http://download.oracle.com/otn-pub/jcp/7195-jms-1.1-fr-spec-oth-JSpec/jms-1_1-fr-spec.pdf

 

--还有就是【Java消息服务第二版这本书】

 

http://blog.csdn.net/yutel/article/details/3874439 --此书中提到jms有2种模式,一种是队列,一种是点对点。在我看来,广播群发消息就用队列,即时聊天就用点对点

 

附源码如下:启动时要加3个参数

 

 

package testJms;

import java.io.*;
import javax.jms.*;
import javax.naming.*;
public class Chat implements javax.jms.MessageListener {
		private TopicSession pubSession;
		private TopicPublisher publisher;
		private TopicConnection connection;
		private String username;
		/* Constructor used to Initialize Chat */
		public Chat(String topicFactory, String topicName, String username)throws Exception {
			// Obtain a JNDI connection using the jndi.properties file
			InitialContext ctx = new InitialContext();
			// Look up a JMS connection factory and create the connection
			TopicConnectionFactory conFactory = (TopicConnectionFactory)ctx.lookup(topicFactory);
			TopicConnection connection = conFactory.createTopicConnection();
			// Create two JMS session objects
			TopicSession pubSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
			TopicSession subSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
			// Look up a JMS topic
			Topic chatTopic = (Topic)ctx.lookup(topicName);
			// Create a JMS publisher and subscriber. The additional parameters
			// on the createSubscriber are a message selector (null) and a true
			// value for the noLocal flag indicating that messages produced from
			// this publisher should not be consumed by this publisher.
			TopicPublisher publisher = pubSession.createPublisher(chatTopic);
			TopicSubscriber subscriber = subSession.createSubscriber(chatTopic, null, true);
			// Set a JMS message listener
			subscriber.setMessageListener(this);
			// Intialize the Chat application variables
			this.connection = connection;
			this.pubSession = pubSession;
			this.publisher = publisher;
			this.username = username;
			// Start the JMS connection; allows messages to be delivered
			connection.start();
		}
		/* Receive Messages From Topic Subscriber */
		public void onMessage(Message message) {
			try {
				TextMessage textMessage = (TextMessage) message;
				System.out.println(textMessage.getText());
			} 
			catch (JMSException jmse){
				jmse.printStackTrace(); 
				}
		}
		/* Create and Send Message Using Publisher */
		protected void writeMessage(String text) throws JMSException {
			TextMessage message = pubSession.createTextMessage();
			message.setText(username+": "+text);
			publisher.publish(message);
		}
		/* Close the JMS Connection */
		public void close() throws JMSException {
			connection.close();
		}
		/* Run the Chat Client */
		public static void main(String [] args) {
		try {
			if (args.length!=3)
				System.out.println("Factory, Topic, or username missing");
				// args[0]=topicFactory; args[1]=topicName; args[2]=username
				Chat chat = new Chat(args[0],args[1],args[2]);
				// Read from command line
				BufferedReader commandLine = new
				java.io.BufferedReader(new InputStreamReader(System.in));
				// Loop until the word "exit" is typed
				while(true) {
					String s = commandLine.readLine();
					if (s.equalsIgnoreCase("exit")){
					chat.close();
					System.exit(0);
			} 
			else
			chat.writeMessage(s);
			}
		} catch (Exception e) { e.printStackTrace(); }
		}
}

=======================================================================
ps:又发现一个JMS好教程的地方,我已经粗略浏览过几篇,讲的不错:
http://www.360doc.com/content/09/0712/20/18042_4241628.shtml
分享到:
评论

相关推荐

    java-jms小例子

    本示例“java-jms小例子”旨在演示JMS的基本用法。JMS的核心概念包括消息生产者、消息消费者和消息队列/主题。在这个小例子中,我们将探讨如何创建这两者以及如何利用它们进行通信。 1. **消息生产者**:在JMS中,...

    Jms的例子 不错的例子

    JMS的例子是学习和理解这一技术的关键,通过实际操作可以深入领会其工作原理和用法。 在“jmstest”这个压缩包中,我们可能找到一个简单的JMS应用实例。通常,这样的例子会包含生产者(Producer)、消费者...

    ActiveMQ实战——实现一个简易版的聊天室

    在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...

    J2EE实现的简易网上聊天室

    在聊天室的实时通信中,JMS可以作为后台消息队列,确保消息的可靠传输,即使在高并发情况下也能保持高效。 5. **Servlet API**:提供了一系列接口和类,使得开发人员可以编写Servlet,处理HTTP请求和响应。 6. **...

    JMS完全实例(八个实例)

    在一些实例中,我们可能会看到使用Plain Old Java Object(POJO)作为消息监听器的例子。这意味着消息监听器并不需要继承特定的Spring或JMS类,而是作为一个普通的Java对象被注册为消息监听器。这种方式提高了代码...

    springMVC activemq简单聊天室

    1. 用户A在聊天室发送一条消息,SpringMVC控制器接收到请求后,将消息封装为JMS消息并发送到ActiveMQ的特定主题或队列。 2. ActiveMQ接收到消息后,将其存储在内存或磁盘中,并通知所有订阅了该主题的客户端有新消息...

    JMS开发例子.rar

    这个"JMS开发例子.rar"压缩包文件很可能是包含了一个关于如何使用JMS进行开发的实例教程或代码示例。 在JMS中,有两个主要的角色:生产者(Producer)和消费者(Consumer)。生产者负责创建和发送消息,而消费者则...

    JMS入门小例子以及weblogic安装,并且在weblogic中配置JMS服务

    JMS(Java Message Service)是Java平台中用于创建和管理消息传递系统的一种API,它允许应用程序之间进行异步通信。JMS提供了一种标准接口,使得应用开发者可以使用不同的消息中间件(Message Broker),如WebLogic ...

    JMS简单示例1

    **JMS简介** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用集成的标准化API,它允许应用程序创建、发送、接收和读取消息。JMS提供了一种在分布式环境中可靠地传递信息的方式,使得不同...

    activeMQ JMS WEB 例子

    在这个"ActiveMQ JMS WEB 例子"中,我们将探讨如何在Web环境中使用ActiveMQ进行消息通信。 首先,了解ActiveMQ的基本概念是必要的。ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、XMPP和MQTT,使其能够广泛应用...

    JBOSS建立JMS应用实例

    【JBOSST建立JMS应用实例】 JBOSST(Java Business Open Source Solutions)是一个开源的企业级应用服务器,它提供了全面的中间件服务,包括对Java消息服务(JMS)的支持。JMS是一种标准,用于在分布式环境中传递...

    JMS分布式例子

    标题中的“JMS分布式例子”指的是Java消息服务(Java Message Service)在分布式环境中的应用示例。JMS是Java平台中用于创建、发送、接收和读取消息的标准API,它提供了一种可靠的消息传递机制,使得不同的应用程序...

    jms+sping+activeMq的例子serd和recevice

    标题"jms+spring+activeMq的例子serd和recevice"提到了三个关键术语:JMS(Java Message Service)、Spring框架和ActiveMQ。这表明我们将探讨一个结合了这三个技术的示例,其中"serd"可能是"server"的误拼,而...

    JMS相关,教程,例子,学习笔记

    **JMS例子** 可能包括创建简单的生产者和消费者,以及更复杂的场景,如实现故障切换、负载均衡或者使用事务确保消息的一致性。例如,一个例子可能演示如何通过JMS API创建一个生产者,向队列发送一条消息,然后创建...

    JMS开发例子.pdf

    在本例子中,我们将关注如何使用OpenJMS这一开源JMS实现来搭建服务器并进行消息的发送和接收。首先,你需要从官方网站下载最新版本的OpenJMS,解压缩后在bin目录下运行startup.bat启动服务。这会开启一个新窗口,...

    WebLogic下配置的JMS.+例子

    WebLogic Server是由Oracle公司提供的一个企业级Java应用服务器,它支持Java EE标准,包括Java消息服务(JMS:Java Message Service)。JMS是一种为应用程序提供创建、发送、接收和读取消息的标准API。在WebLogic中...

    javax.jms.jar

    Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....

Global site tag (gtag.js) - Google Analytics