問題タブ [ejabberd]
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 - 正規表現を使用した ejabberd シェーパー ルールの構成
名前が特定のパターンに適用されるユーザーに高速シェーパーが割り当てられる必要がある ejabberd サーバーを実行しています。たとえば、次のユーザーがいる場合: A123 A222 B892 C123
すべてのユーザーに「通常」のシェーパーを使用させたいのですが、ユーザー名が「A*」の場合は「高速」のシェーパーを取得したいと考えています。グループを構成して、すべての「A*」ユーザーをそのグループに手動で追加することを避けようとしています。
アイデア?
ejabberd - Ejabberd と Strophe の問題: 「終了: セッションの削除」
私はこの問題と 3 日以上「格闘」しており、関連するすべてのことをググってみました。
そこで、基本的なチャット アプリケーションを作成するために、Strophe と Ejabberd をセットアップしたいと思います。私が直面している問題は、Strophe を使用して XMPP サーバーに接続しようとするたびに、ステータスが CONNECTING のままになることです。Apache/Nginx プロキシを使用すると、502 プロキシ エラーが発生します。
flXHR を使用して http-bind への直接接続を使用している場合、ブラウザーでは何も起こりません。CONECTING状態のままです。
この問題に直面しているマシンには、Fedora 12 と Ejabberd 2.1.4 があります。
ejabberd.log には次のようなものがあります。
実際、Ubuntu 10.4 では同じ設定 (同じ javascript/html と同じ ejabberd.cfg) で問題はありません。動作中のセットアップと動作していないセットアップの間に 2 つの違いがあることがわかりました。まず、Ubuntu マシンでは 2.1.2-2 を ejabberd しましたが、問題のある Fedora マシンでは 2.1.3 (試して 2.1.4) でした。次に、動作するマシンのログに「gethostname」と「terminate: Deleting session」がありません。したがって、問題は「セッションの削除」にあり、「gethostname」に関連していると思いますが、この問題を解決するのに十分な経験がありません。
これをさらにデバッグする方法についてのヘルプや手掛かりをいただければ幸いです。前もって感謝します。
javascript - XMPP バインド セッションを Facebook や okCupid などの複数のタブまたはウィンドウにどのようにミラーリングしますか?
http バインディングと ejabberd を使用して、Web ベースのインスタント メッセージング/チャット機能を実装しました。怠け者のために、私の質問の短いバージョンを次に示します。
複数のブラウザ ウィンドウに同時に表示できる Web ベースの XMPP チャット クライアントを実装するにはどうすればよいでしょうか。それぞれが開いているチャットの同一のビューを表示します。
気にする人のためのより詳細なとりとめ:
考えられる解決策の 1 つは、すべてのタブが独自の接続を管理できるようにすることです。XMPP は複数のクライアントを適切にサポートしているため、ルーティングは XMPP に任せてください。このソリューションには少なくとも 2 つの問題があります。1 は、これが引き起こす帯域幅消費の明らかな増加です。2 は、ejabberd で MUC ルームに接続するために、同じ JID を持つ複数のクライアントが現在サポートされていないことです。これは 3.1 で実装されるようですが、現状では私にとって大きな問題です。
最初は、フラッシュ マジックが関係しているのではないかと思っていましたが、ページの SWF は通知の効果音を再生するためだけに使用されているようです。これは、firebug などを使用して埋め込みタグを削除することで確認できます。チャット機能は引き続き機能します。
これにより、基本的に、タブ間で共有する唯一の方法として Cookie が残ります。このシナリオでは、マスター タブはすべてのメッセージを他のタブからポーリングできる Cookie にダンプします。待ち時間を避けるためにポーリング頻度を非常に高くする必要があるため、これは非常にばかげているように思えます。「マスター」ウィンドウを閉じるとどうなりますか?
私はこれが複数のサイトで行われているのを見てきました.通常、これらの問題を見ると、少なくともぼんやりと理解できますが、これが私を困惑させたことを認めてもかまいません.
mysql - MySQL: 不明な数のテーブルからのクエリ
これが私がやろうとしていることです。mod_logdb で ejabberd を使用しています。すべての会話は、日付でタグ付けされたデータベース内のテーブルに記録されます。
例: logdb_messages_2010-7-17_server_node
私がやろうとしているのは、DB にあまりアクセスせずにこれらすべてのテーブルを検索する検索を作成することです。テーブル内のすべてのデータを取得するビューを作成して、それをヒットできるようにしたいと思います。
問題は、ログがない日があり、もちろん、ログを開始する前の日もあるということです。
ワイルドカードを使用して MySQL からこれらを取得する方法はありますか? 私のもう1つの方法は、必要なビューを再作成するために毎日のcronジョブを作成することです。
erlang - ejabberd:Mnesiaテーブルを検査しますか?
ejabberdを調べていますが、Mnesiaテーブルを検査する方法が見つかりません。
テーブルを検査するためのMySQLシェルのようなものはありますか?
ejabberd - ejabberdの許可されていないノードからの接続試行
ejabberdクラスターを持っていることと問題があること。2番目から最初のノードにpingを実行しようとすると、次のようになります。
「許可されていないノードからの接続試行」
両方のサーバーのCookieが一致しているため、Cookieの問題ではないことはわかっています。
iphone - ejabberdmod_offlineiphoneプッシュ通知
私は現在チャットiPhoneアプリを開発しており、これまでのところejabberdサーバーの通常の構成に適しています。ユーザーが「オフライン」のときにプッシュ通知を実装したいのですが、これを行うには、トークンデバイスとテキストメッセージを取得してSSL経由でAppleのサーバーに配信するPHPスクリプトを実行する必要があります(Appleの部分は完了しています)。問題が始まるのは、このアクションをejabberdサーバーに実装する方法がわからないということです。基本的に、受信したオフラインメッセージに対してアクションを作成する必要があります。これは可能です。誰かが私を正しい方向に向けることができますか?新しいモジュールのコードを書き始めることができましたが、このモジュールがオフラインメッセージによって呼び出されると、常に同じエラーが発生します。コードとエラーは次のとおりです。
module.erl
エラー
erlang - ejabberd: インストール済み、追加されたユーザーは機能しているが、ejabberdctl が機能していない
エラーなしでUbuntu 10.04にシナプスパッケージマネージャーを使用してejabberdをインストールしました。「sudo dpkg-reconfigure ejabberd」を使用して構成しました。http://localhost:5280/admin/ consoleを使用してユーザーも追加しました。ejabberdctl コマンド以外はすべて正常に動作しています。
knocker@ps0714-U:~$ ejabberdctl
ノード 'ejabberd@ps0714-U' への RPC 接続に失敗しました: nodedown
knocker@ps0714-U:~$ ejabberdctl ステータス
ノード 'ejabberd@ps0714-U' への RPC 接続に失敗しました: nodedown
knocker@ps0714-U:~$ ejabberdctl 登録テスト テスト
ノード 'ejabberd@ps0714-U' への RPC 接続に失敗しました: nodedown
構成に何か問題がありますか?ここで見逃したもの..?
python - Python ejabberd 認証スクリプトがデータベースの変更に応答しない
このリンクに基づいたejabberd(XMPPサーバー)に認証スクリプトがあります
スクリプトを少し変更して、変数を設定する代わりに、true または false を返すようにしました。
Ubuntu、MySQL、ejabberd、および Python を使用しています。
データベースに既に存在するすべてのレコードを認証できます。しかし、レコードを追加または削除すると (phpMyAdmin を使用してこれを行います)、スクリプトはデータベースが変更されたことを認識していないようです (phpMyAdmin でユーザーを削除しても、ユーザーは認証されます)。スクリプトが新しいレコードを認識するのは、ejabberd サーバーを再起動または強制リロードするときだけです。私はすでにそれがmySQLキャッシングの問題ではないと言われています。ejabberd の外部認証キャッシュをオフにしたことを確認しました。
今思いつくのはそれだけです。思いついた情報があれば追記します。どんな助けでも大歓迎です。何が起こっているのかわかりません。
追加:MySQLログとそこにあるすべてのクエリをオンにして、クエリをスキップしないようにしました。
php - Web サイト上の XMPP を登録ユーザーと完全に統合する方法
人々が連絡先を持っているソーシャル ネットワーキング サイトがあり、それを XMPP と統合したいと考えています。現在、ejabberd XMPP サーバーを使用しています。
ここに私の質問があります:
アカウントを正しく作成するには?現在、私が考えているのは、Web アプリでのユーザー登録についてです。ユーザーを作成するために ejabberd コマンドを実行するスクリプトを呼び出します。
ユーザ認証。ユーザーが当社の Web サイトにログインすると、ユーザーは自動的にチャット システムにログインします。strophe.js を使用してクライアント側でこれを行うにはどうすればよいですか? 私が理解しているように、認証にはJIDとパスワードを提供する必要があるため、ログイン時にユーザーのパスワードを取得するためのajax呼び出しがあり、strophe.jsのログイン呼び出しで応答テキストを使用すると考えています。これは安全ですか?これを行う他の方法はありますか?
プレゼンス登録。私たちの Web アプリには連絡先システムがありますが、XMPP にはプレゼンス サブスクリプションを通じて連絡先を追加する独自の方法がありますよね? 例: user1 が user2 を追加しようとすると、user1 が user2 の連絡先になる前に、user2 に許可が求められます。しかし、Web アプリには既に連絡先システムがあるため、この XMPP の認証をバイパスするか、抑制して、user2 が user1 をWeb サイトの連絡先として確認したときに、スクリプト/コマンドで認証するだけにしたいと考えています。. 私にはまだはっきりしていませんが、ejabberd のモジュール mod_admin_extra (クライアント側の承認なしでサブスクリプションを作成するコマンド) でこれが可能であると同僚が言いました。それは可能ですか、またはスクリプトを使用して ejabberd データベースを手動で操作する必要がありますか (デフォルトの Mnesia データベースから別のデータベース、たとえば MySQL に転送した場合)。
前もって感謝します。