Java Message Service version 2 :使用JMS完成pub/sub
来源:互联网 发布:新网域名备案系统 编辑:程序博客网 时间:2024/06/05 19:39
public class Chat implements MessageListener{ private TopicSession pubSession; private TopicPublisher publisher; private TopicConnection connection; private String username; public Chat(String topicFatory, String topicName, String username) throws NamingException, JMSException { InitialContext ctx = new InitialContext();//从properties配置文件获取JDNI连接 //查找一个JMS连接工厂并创建连接 TopicConnectionFactory conFactory = (TopicConnectionFactory) ctx.lookup(topicFatory); TopicConnection connection = conFactory.createTopicConnection(); //创建两个JMS会话对象(发布/订阅) TopicSession pubSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); TopicSession subSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); //查找一个JMS主题 Topic chatTopic = (Topic) ctx.lookup(topicName); TopicPublisher publisher = pubSession.createPublisher(chatTopic); TopicSubscriber subscriber = subSession.createSubscriber(chatTopic, null, true); //设置一个JMS消息侦听器 subscriber.setMessageListener(this); //初始化Chat应用程序变量 this.connection = connection; this.pubSession = pubSession; this.publisher = publisher; this.username = username; //启动JMS连接 connection.start(); } public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println(textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } protected void writeMessage(String text) throws JMSException { TextMessage message = pubSession.createTextMessage(); message.setText(username+": "+text); publisher.publish(message); } public void close() throws JMSException { connection.close(); } public static void main(String[] args) { if(args.length != 3) System.out.println("Factory , Topoc , or username missing"); try { Chat chat = new Chat(args[0],args[1],args[2]); BufferedReader commandLine = new BufferedReader(new InputStreamReader(System.in)); while(true){ String s = commandLine.readLine(); if(s.equalsIgnoreCase("exit")){ chat.clone(); System.exit(0); } else chat.writeMessage(s); } } catch (Exception e) { e.printStackTrace(); } }}
0 0
- Java Message Service version 2 :使用JMS完成pub/sub
- Java Message Service (JMS)
- JMS ---Java message service例子
- 认识JMS(JAVA Message Service)
- java实现Pub/Sub
- jboss4官方jms程序(Pub-Sub)
- JMS(java message service)java消息服务
- 使用Redis的Pub/Sub来实现类似于JMS的消息持久化
- JMS概要(Java Message Service Overview)
- JMS(Java Message Service)概念归纳
- JMS(Java Message Service)概念归纳
- Spring 消息JMS(Java Message Service)
- JMS(Java Message Service)的基本概念
- 第一个JMS(Java Service Message)实例
- jms pub/sub代码(jms provider: oracle AQ via oc4j )
- Kafka——使用java api进行pub & sub
- ActiveMq--Pub/Sub的使用
- Spring JMS 异常消息接收&发送Pub/Sub域消息
- .Net与Oracle的数据库连接池(ConnectionPool)
- Eclipse智能提示及快捷键
- linux 不改变目录结构移动 home 目录到新分区
- AES加密
- MySQL数据库二
- Java Message Service version 2 :使用JMS完成pub/sub
- 安卓开发:魅族手机安装apk安装包提示安装失败、更新包不兼容问题的解决方法
- Spring 事务的隔离级别和传播行为的理解
- Spring MVC 3.1新特性 生产者、消费者请求限定 —— 第六章 注解式控制器详解
- getTime()方法在苹果系统的bug
- Android 自定义流布局
- 人月神话之四 画蛇添足 贵族专制、民主政治和系统设计
- session和cookie的区别
- [SMOJ1780]变形合唱队形