我最近在a post读到了Smack论坛
在Java EE服务器中启动守护程序线程是一个很大的问题
基本上Smack的XMPPConnection启动一个守护程序线程来监视传入的数据 &安培;另一个分别从/向jabber服务器发送传出数据。在这种情况下使用守护程序线程来监听写/读是否合理?
答案 0 :(得分:1)
是的,XMPPConnection创建了两个线程 - 一个用于监听/读取,一个用于写入。但是这些只有XMPPConnection实例才有效,我认为这不是永远的。
“在Java EE服务器中启动守护程序线程是一个很大的禁忌”
你在编写符合规范的EJB吗?如果是这样,则适用。规范说不要这样做。 EJB 2.1规范:
“企业bean不得尝试 管理线程。企业bean 一定不要试图开始,停止, 暂停,或恢复一个线程,或 更改线程的优先级或名称。 企业bean不得尝试 管理线程组。“
或者它只是一个恰好在Tomcat中运行的webapp?如果是这种情况,那么我没有看到任何根本问题。没有线程,您的Smack客户端将无法与服务器通信。
答案 1 :(得分:0)
我只使用Smack API进行客户端连接,这些都是独立的程序。首先,您应该重新审视J2EE容器中Smack API的选择(或目的)。