3

最近、Smack フォーラムへの投稿を読みました。

Java EE サーバーでデーモン スレッドを開始することは、大したことではありません。

基本的に、Smack の XMPPConnection は、1 つのデーモン スレッドを開始して着信データを監視し、別のデーモン スレッドを開始して、それぞれ jabber サーバーとの間で発信データを送信します。このシナリオでデーモンスレッドを使用して書き込み/読み取りをリッスンすることは合理的ですか?

4

2 に答える 2

1

はい、XMPPConnection は 2 つのスレッドを作成します。1 つはリスニング/読み取り用、もう 1 つは書き込み用です。しかし、これらは XMPPConnection インスタンスの間だけ存続します。これは永遠ではないと思います。

「Java EEサーバーでデーモンスレッドを開始することは、大したことではありません」

仕様に準拠した EJB を作成していますか? もしそうなら、これは当てはまります。仕様はそれをしないと言っています。EJB 2.1 仕様:

「エンタープライズ Bean は、スレッドの管理を試みてはなりません。エンタープライズ Bean は、スレッドの開始、停止、一時停止、再開、またはスレッドの優先度や名前の変更を試みてはなりません。エンタープライズ Bean は、スレッド グループの管理を試みてはなりません。」

それとも、たまたま Tomcat で実行されているのは単なる webapp ですか? これが事実であれば、根本的な問題はないと思います。スレッドがなければ、Smack クライアントはサーバーと通信できません。

于 2009-04-10T06:37:13.453 に答える
0

スタンドアロン プログラムであるクライアント接続のみに Smack API を使用しました。まず、J2EE コンテナー内での Smack API の選択 (または目的) を再検討する必要があります。

于 2009-04-10T04:13:47.073 に答える