問題タブ [tigase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xmpp - Tigase、Openfire、およびその他のオープンソース XMPP サーバーの比較
私もこれらを見てきましたが、どちらも Java で完全に機能する XMPP サーバーを提供しているようです。Tigase が非常にモジュール化された方法で設計されていることは知っていますが、Openfire はまだ詳細に検討されていません。
私の意図した用途は、サーバーを開いて他の XMPP サーバーと通信するのではなく、便宜上 XMPP を使用してカスタム IM ベースのアプリを作成することです。
以下に基づいて、大まかに重要度の順にニーズを評価しようとしています。
- ドキュメントの範囲とコミュニティ
- 独自の機能をいかに簡単にプラグインするか
- ライセンス/コスト - コードをリリースする予定はありません
- 成熟度と安定性
android - AndroidクライアントをローカルXMPPサーバーに接続できません
これはここに投稿することに関してです
PCをローカルのtigaseサーバーセットアップにローカルに接続できます(Smack APIを使用しています)。現在、AndroidフォンをWi-Fi経由でそのサーバーに接続したいときに問題が発生しています。クライアントBeemforandroidを使用してローカルサーバーに接続できます。サーバーのXMPPドメイン名はPC名「mwbn43-1」、IPアドレスは「192.168.0.221」です(このサーバーにpingを実行できます。 Androidターミナルエミュレータ)。Beem設定には、接続したいサーバー(IPアドレスとして指定)を指定できる詳細オプションがあります。このオプションを設定しないと、接続できません。これが、 Androidクライアントに使用したコード。
このコードを使用してgoogleトークサーバーに接続することもできます。ローカルサーバーに接続しているときに、接続するホスト名とIPアドレスを指定してみました。IPアドレス(192.168.0.221)を指定すると、「応答がありません」 「サーバーエラーから」とstream:error(host-unknown)を指定し、ホスト名(mwbn43-1)を指定すると、「remote-server-timeout(504)」とホストが未解決になります。
Beemのコードを調べてサーバーとの接続方法を確認しましたが、あまり見つかりませんでした。インターネットのユーザー権限も付与しました。ローカルサーバーと通信するために追加するコード行を教えてください。
iphone - ティガセ:MUG未実装、次は?
iPhone/iPad向けのマルチプレイヤーゲームの開発を始めており、ゲームサーバーのXMMPサーバーとしてTigaseを使用することを考えていました。ただし、Tigase はまだ MUG XEP を実装していないようです。とにかく、MUG は私が達成しようとしている単純なタスクには複雑すぎます。
ゲームの基本は次のとおりです。
- 各マッチには最大 4 人のプレイヤーが参加できます。
- 各プレイヤーはいつでも動きを実行でき、唯一のゲーム ルールは、ユーザーが行った動きと、それが良い動きであるかどうかを伝えるパケットを、マッチ内の各プレイヤーに転送することです。
これが私がそれを実装したい方法です:
- MUC コンポーネントを再利用して、マルチプレイヤー ルームをシミュレートします。
- 各ルームには Bot メンバーがいます。すべてのパケットはその BOT に直接宛てられます。BOT は動き (基本的なメッセージ パケット) の有効性をチェックし、適切なメッセージをルーム内のすべてのプレイヤーに送信します。
これはうまくいくかもしれないと思います。これが実行可能な解決策であると思われる場合:
- BOT を作成する最良の方法は何ですか。部屋ごとに 1 つの BOT を使用する必要がありますか? BOT を作成できるように、新しいルームが作成されたことを検出するにはどうすればよいですか?
java - Java Tigase パフォーマンス
Tigase サーバーがこれほど多くの接続に到達できるのはなぜですか? http://www.tigase.org/content/tigase-load-tests-again-500k-user-connections
Netty で仮想的に 100,000 接続に到達できますか?
java - XMPP プロトコルを使用して、ある Android から別の Android に tigase サーバー経由で文字列配列を送信する
私は現在、Smack ライブラリと Tigase サーバーを使用して、XMPP プロトコルを使用してある Android から別の Android に String 配列を送信しようとしています (Eclipse IDE を使用して Java で開発しています)。
文字列配列は項目ですか? または、他の何か?ファイルとして送信することもできるかもしれませんが、(デバイスのバッテリーのために)より多くのエネルギーを消費する可能性があると思います。このタスクを達成するための好ましい方法はありますか?
私がこれを尋ねているのは、第一に、私が独自に答えを見つけようとすることができる組織化された情報源がないためであり、第二に、それは非常に基本的なタスクであり、次のようなことをした可能性のある人に比べて理解するのに数時間かかる可能性があるためです.この前。
この特定の質問に対する答えがわからないが、どこで見つけられるか知っている場合は、情報源を喜んで受け取ります...
strophe - tigase サーバーでの PEP 処理
もともと、私は Web ベースのチャット クライアントに openfire バックエンドを使用していました。しかし、その pep はクラスタリングで機能しなかったため、tigase に移行する必要がありました。
チャットは tigase で正常に動作します。クラスタリングの部分にはまだ行っていませんが、古いサービスを立ち上げるのにまだ苦労しています。注: Web アプリで strophe を使用しています。
私は現在、pep を tigase で動作させる方法を見つけようとしています。openfire での pep の場合、私は strophe で pep プラグインを使用し、そのような別のユーザーの pep ストリームにサブスクライブします
公開するには、これらを使用します:
これは以前は openfire で問題なく動作していましたが、大きな違いの 1 つは、tigase ではコールバック成功のサブスクリプションを取得できないことです。名簿にユーザーを公開すると、自動的にストリームが取得されます (これは良いことです)。しかし問題は、strophe を使用してこのイベントのハンドラーを指定できないことです。
cef と miko の 2 人のユーザーがいて、ドメインが mydomain の場合。miko で気分を公開すると、cef で次のようになります。
名簿の場合と同じように、自分でハンドラーを作成しようとしました。
この特定のイベントでは、ハンドラーのどれもそれらを処理できませんが、firebug と Google の検査を使用すると、前述のスタンザを含むエントリがネットワークに表示されます。
しかし、うまくいかないようです。誰にもアイデアはありますか?
amazon-ec2 - AmazonEC2でのTigaseXMPPサーバーのスケーリング
AmazonのEC2でクラスター化されたTigaseXMPPサーバーを実行した経験のある人はいますか?主に、私をつまずかせる可能性のある、自明ではないことについて知りたいです。(たとえば、EC2でEjabberdを実行すると、Mnesiaが原因で問題が発生する可能性があります。)
または、UbuntuにTigaseをインストールして実行するための一般的なアドバイスがある場合。
追加情報:
私が開発しているシステムは、モバイルアプリとサーバーの間で(ほぼリアルタイムで)通信するためだけにXMPPを使用しています。
ユーザー数は最初は少ないですが、うまくいけば増えるでしょう。これが、システムがスケーラブルである必要がある理由です。おそらく、ほんの数千人のユーザーにとって、cc1.4xlarge EC2インスタンスは必要ないでしょうか?(そうでないと、これを実行するのに非常に費用がかかります!)
XMPPサーバーデータベースには、AmazonRDSでホストされているMySQLデータベースを使用する予定です。
また、 SleekXMPPを使用して、Pythonで記述された外部XMPPコンポーネントを作成する予定です。私が作成しているアプリケーションはインスタントメッセージングとはまったく異なるため、サーバーのすべての「作業」を行うのはこの外部コンポーネントになります。この部分では、Pythonで記述された外部XMPPコンポーネントをTigaseサーバーに接続する方法を理解していません。ドキュメントは、コンポーネントがTigase専用に記述されていることを示唆しているようです。予想どおり、 XEP-0114: JabberComponentProtocolを使用して一般的なXMPPサーバー用に記述されているわけではありません。
この追加情報を使用して、他に何か考えていただければ、喜んでお知らせします。
ありがとうございました :)
amazon-ec2 - EC2でのOpenfireのパフォーマンス
モバイルアプリにリアルタイムチャット機能を導入する予定です。もちろん、XMPPの方法を採用します。
Openfireが現実世界のさまざまなサイズのEC2インスタンス(Windowsサーバー)でサポートしている同時ユーザーの最大数の統計に光を当てることはできますか?
アプリのダウンロードで予測される成長パターンと、この新しいリアルタイムチャット機能へのユーザーの適応性に応じて、22500人の同時ユーザーから75000人の同時ユーザーまでの範囲の数を調べています。時間範囲=次の12か月。
私がこれまでに行ったグーグルから、スケールアウトに関してはOpenfireが最善の策ではないように思われるので、これらの数値はec2の単一インスタンスで長期的にサポートできますか?つまり、より小さなインスタンスでホスティングを開始し、負荷の要求に応じてインスタンスサイズを増やし続けます。
スケールアウトに関しては、Ejabberedが最良の選択肢のように見えましたが、拡張するにはerlangスキルが必要になるため、ejabberedを選択するのは困難です。もう1つの代替手段はJavaであるtigaseであるため、簡単に拡張できますが、Openfireがスケールアップとスケールアウトで今後12か月ほど機能する場合は、今のところそれを使用して、これがどれだけうまくいくかを確認できます。新しいチャット機能が採用されています。一番の理由は管理のしやすさです。
最後に、XMPPチャット+ユーザーがオフラインのときにモバイルデバイスに通知をプッシュするためのSaaS/PaaSプロバイダーのリンクを支援できれば素晴らしいでしょう。私たちはquickblox.comと連絡を取りましたが、彼らのエンタープライズ製品は現時点では高価なようです。SaaS / PaaSの方法を採用する場合、データの100%の所有権と移植性が必要です。
tigase - tigase で XMPP を介して BOSH を構成するにはどうすればよいですか?
tigase XMPP サーバーをインストールしました。ここで、http 経由で接続するために BOSH を構成したいと考えました。私はこの環境にほとんど慣れていません。どんな助けでも大歓迎です。
java - mysql + xmpp サーバー + テストの読み込み - 物理的な限界に達しましたか?
負荷テスト中 (サーバーに接続するユーザーをシミュレート)、最初の 1750 秒間、平均トランザクション/秒レートは約 300 ~ 400 で、ピークは約 700 トランザクション/秒です。これらのトランザクションは、トランザクションごとに約 5 ~ 10 のクエリの割合で、サーバーの基礎となる mysql データベースを使用しています。結合、ビュー、またはより複雑なものはありませんが、単純なクエリ、それに応じてインデックス化されたデータベース、innoDB ストレージ エンジンがあります。マシンには十分な RAM と CPU パワーがあり、監視により、SQL 例外が発生した場合でも、マシンには 50% を超える空き CPU/RAM リソースがあることがわかります。Db エントリは 10^5 の大きさのオーダーですが、それでも、これらの例外が約 20 ~ 30 あります。
私はそれらを再確認したので、時間の測定値は正しいと信じています. なぜこのような例外が発生するのですか? 測定された実行時間がかなり短い場合があるのはなぜですか (0 ミリ秒 = 即時例外スローでも) ?
Mysql のスロー ログが明らかにします (大きな問題が 1 つだけですか?):
データベースの jdbc ドライバーを変更してみましたが、現在使用しているバージョンの mysql にそのようなバグが記録されていないことを確認しました。
ご意見をお寄せいただきありがとうございます。