基于 JMS 的聊天应用开发详解
1. 代码调用注意事项
在编写代码时, createSubscriber()
方法采用了接收三个参数而非一个参数的形式。第三个参数用于设置 noLocal
标志,其作用是使该类发布的消息不会被自身消费。第二个参数用于消息选择器,由于我们不对主题进行过滤,所以此值设为 null
。若使用单参数的方法调用创建订阅者,我们会在控制台看到自己发送的消息。
2. 聊天应用启动准备
要运行聊天应用,需要一个支持 JNDI 和 JMS 1.1 的 JMS 提供程序。为说明代码示例中的一些细节和配置,我们将使用流行的开源 JMS 提供程序 ActiveMQ。你需要参考 JMS 供应商的文档,以获取为聊天应用配置 TopicConnectionFactory
和 Topic
的信息。在示例中,我们分别将它们命名为 TopicCF
和 topic1
。
以下是使用 ActiveMQ 时,通过创建位于类路径中的 jndi.properties
文件来设置 TopicConnectionFactory
名称和 Topic
的示例:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInit