問題タブ [xmpp4r]
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.
objective-c - iOS XMPP フレームワークはすべての登録ユーザーを取得します
私のチャット アプリケーションでは、すべてのオンライン登録ユーザーを取得したいと考えています。したがって、このコードで達成される私の名簿の人々だけでなく、全員:
このコードを使用すると、ユーザーは「友達」である他のユーザーのみを表示しますが、この特定のドメインに登録されているすべてのユーザーが必要です。これはejabberdで可能ですか?
ruby-on-rails - オブジェクトへのポインターをデータベースに格納する
すべてのユーザーが自分の Facebook アカウントを接続し、使用しているアプリからメッセージを送信する許可を与えることができる Rails アプリがあります。したがって、接続された Facebook アカウントを持つすべてのログイン ユーザーは、Facebook ID、トークンなどで認証された 1 つの Jabber クライアントを持っている必要があります。私は xmpp4r GEM でそれを行っています。
接続された facebook アカウントとトークン、および facebook データはデータベースに Mailman オブジェクトとして保存されます。Mailman クラスには、run_client、connect_client、authorize_client、stop_client、get_client などの Jabber クライアントを制御するメソッドもあります。私にとって最も重要なメソッドは connect_client とget_client.
コードでわかるように、すべての Mailman オブジェクトには Jabber::Client オブジェクトを返す必要がある get_client メソッドがあり、@@clients 変数が格納されるのは実行中のアプリケーションの範囲内だけであるため、実際に動作しています。特定の実行中のアプリ。
アイドル状態のクライアントを閉じるために cron タスクを使用したいのですが、cron タスクはアプリの別の初期化を使用しているため、これは私にとって問題です。 :本番アプリのクライアント オブジェクト。
このような問題にどのように対処していますか?たとえば、Jabber::Client オブジェクトのメモリへのポインタを取得してデータベースに保存し、他のアプリの初期化で使用できるようにすることは可能ですか? それを達成する方法がわかりません。アドバイスありがとうございます!
ruby-on-rails - Ruby on Railsを使用してejabberでチャットを削除する方法
送信する方法は知っていますが、受信して削除する方法がわかりません。
xmpp - XMPP を使用して、サブスクリプションなしでメッセージを送信できますか?
現在、(Ruby) を使用して XMPP ボットを作成xmpp4r
していますが、同じ XMPP サーバーを使用してユーザーにメッセージを送信すると、ユーザーに配信されません。私の状態は次のとおりです。
- ボット ユーザーは XMPP サーバー x に登録されています。
- メッセージを受け取る人間のユーザーも、同じ XMPP サーバー x に登録されています。
- 両方のユーザーがそのサーバーに接続され、オンラインになっています。
- ユーザー間のサブスクリプションや招待はありません。
- この時点で、ボット ユーザーは人間のユーザーにメッセージを送信する必要があります。
これは可能ですか、またはボットからメッセージを送信するにはどうすればよいですか?
ruby-on-rails - XMPP、1 つのメッセージを何千もの jabberID に送信 - jabber は最終的に、選択された JID グループのランダムな部分にのみメッセージを送信します
選択した JID にメッセージを送信するために使用する「スーパーユーザー」アカウントが 1 つあります。メッセージを送信したいユーザーを選択し、ユーザー JID の膨大な配列 (この時点で 20k) を取得したとしましょう。バックグラウンドで実行されているデーモンが各ユーザーに一度に 1 つのメッセージを送信し、2000 のメッセージを送信した後 1 分間停止します (2500/分の制限)。メッセージの送信を処理するクライアントとして xmpp4r を使用しています。すべてのユーザーは同じ @xmpp.address を持っています。<body>
どのメッセージでも同じです。
私たちの tigase ログ (これを使用しているため) は、メッセージが実際に jabber サーバーに到達し、一度に 1 つずつ適切なユーザーに送信されたことを示しています。
私たちが経験している問題は、すべて問題ないように見えたにもかかわらず、実際にメッセージを受け取ったのは一部のユーザーだけだったということです。(たとえば、ある時点で、最初に 100 件のメッセージが送信されたことを考慮すると、1..20 と 91..100 が配信され、中間の 70 はまったく配信されませんでした)、その間にいくつかの点を改善しましたが、これはまだ可能性があります手掛かり。
10000 の複製された JIDS の配列を作成しようとしました (2 人のユーザーの jid が何千回も複製されました)、すべてのメッセージが (そして正しい順序で) 配信されました。
私たちはすでに数日間さまざまなシナリオを試してきましたが、何がうまくいかないのかについてのアイデアが不足し始めています。
私たちが見逃したかもしれないものについて何か考えがありますか?
ruby - xmpp4r コードからグループを作成
Rails 4 で xmpp4r を使用して、リアルタイムの Web チャット システムを実装しています。XMPP サーバーは Openfire で、Web クライアント部分には converse.js を使用しています。問題は次のとおりです。converse.js ウィジェットを介してログインすると、クライアントは接続しています (Openfire インターフェイスを介してオンラインであることを確認できます) が、他のアカウントとの間でメッセージを送受信できません。Openfire Web インターフェイスを使用してグループを作成し、使用したい両方のユーザーを同じグループに追加すると、この問題が解決され、正しく通信できるようになりました。今私の質問は次のとおりです。
- サイトにサインアップするユーザーごとに新しいグループを作成する必要がありますか? このグループには彼の友人が含まれているので、彼は彼らとチャットできます (この質問に対する答えはイエスだと確信しています)。
- xmpp4r を使用してコードからそのようなグループを自動的に作成する方法は?
ruby-on-rails - Rails + xmpp4r + puma. Whem puma run as daemon XMPP disconnects
I've got an initializer which starts xmpp4r client. It works fine when I run puma server as a regular process. But when I start puma as a daemon (-d option) it works for a few seconds and disconnects from the xmpp server. I've got separate thread which handles reconnects, but it doesn't work when puma is a daemon.
I've got nothing from this code in log when puma is a daemon. Right after rails app start it works for a few seconds, receives messages, iqs, no errors just as usual. Then silently disconnects. Here is a constructor of my class:
But when puma run without -d option - no problems at all. Same thing in development and production, my workstation and server. ruby 2.0.0 puma 2.9.2 Min threads: 0, max threads: 16 rails 4.2.0beta4