問題タブ [mongoose-im]
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 - MongooseIM create_room コマンドが不明
私は MongooseIM の初心者です。サーバーをセットアップし、2 人のユーザー間でメッセージを交換できるようになりました。現在、MUC を有効にするようにサーバーをセットアップしようとしています。
ejabberd.conf ファイルで mod_muc を有効にしました。create_room コマンドを実行すると、次のエラーが表示されます。
私が見逃しているかもしれないものはありますか?ejabberdctl command "create_room" notknownを調べましたが、解決策はうまくいきませんでした。MongooseIM に固有のものはありますか?
有効なモジュール:
更新: ejabberd に移動しました。ejabberd で有効化されたモジュール:
xmpp - マイクロサービス ネットワークでの ejabberd
マイクロサービス ネットワークで ejabberd / mongooseIm を使用したいと考えています。XMPP は、REST API ネットワークとは別に、チャット プロトコルにする必要があります。xmpp サーバーで受信したメッセージをダウンストリームのワーカー サービスに送信したいと考えています。誰かがこれを行ったことがありますか、それとも私を正しい方向に導くことができますか?
私の最初の考えは、RabbitMQ を使用して、新しい受信メッセージをワーカーに送信することです。
ejabberd - MongooseIM/ejabberd: スクラムを使用した http 認証
現在、MongooseIM を少しいじっていて、スクラムと一緒に HTTP 認証を使用したいと考えています。python passlib を使用してスクラム ハッシュを作成しています。
それから私はこのようなものになります:
残念ながら、この形式は MongooseIM の HTTP 認証では受け入れられません。私はコードを見て、スクラムのハッシュ化されたパスワードのシリアル化された形式がどのように見えるかを調べようとしました: https://github.com/esl/MongooseIM/blob/master/apps/ejabberd/src/scram.erl
passlib から、私が理解している限り、ソルト、反復回数、およびソルト (ハッシュ) パスワードの実際のダイジェスト (sha-1、sha-256、sha-512) を取得しますが、StoredKey と ServerKey はどうですか?アーランコード? host/get_password によって返される正しいシリアライズされた HTTP 本文はどのようになりますか?
前もってありがとう、マグナス
erlang - Mongoose IM のノード名変更の問題
mongooseim のノード名を 10.0.0.21 のようなローカル IP に変更しようとしています。MongooseIM/rel/vars.config の設定を変更しました。 >
{node_name,"mongooseim@10.0.0.21"}
変更する必要があるものはありますか?
ノード名を変更すると、次のエラーが発生します
=INFO REPORT==== 11-Mar-2016::17:11:05 === 短いノード名を設定できません! 構成の escript を確認してください: 例外エラー: 右側の値が一致しません[['mongooseim_maint_6589@10.0.XXX.XXX', shortnames]]}, パーマネント,1000,supervisor, [erl_distribution]}}}
android - xmpp MongooseIM サーバーの smack api 4.1.6 からオフライン メッセージが取得されない
XMPP Mongoose サーバーから smack API を使用して Android アプリでオフライン メッセージを取得するという問題に直面しています。コード フローに従って、利用可能なプレゼンスを mongoose サーバーに送信する前に、ユーザーが xmpp mongoose サーバーにログインしたときに、オフライン メッセージの取得を試みます。
オフライン メッセージを取得する 2 つの異なる方法を試してみましたが、同じ解決策を見つけることができませんでした。私がこれらすべてを試した両方の方法は、以下で詳細に説明されています。
以下の Api では、xmpp 接続とその他すべての拡張機能に使用しています。
// スマック (XMPP クライアント ライブラリ) </p>
「org.igniterealtime.smack:smack-android:4.1.6」をコンパイルします
「org.igniterealtime.smack:smack-tcp:4.1.6」をコンパイルします
「org.igniterealtime.smack:smack-im:4.1.6」をコンパイルします</p>
「org.igniterealtime.smack:smack-android-extensions:4.1.6」をコンパイルします
offlineMessageManager を使用してオフライン メッセージを取得しようとしました
以下は、ログイン後、利用可能なプレゼンスをサーバーに送信する前に、オフライン メッセージを取得しようとしたコードです。
{ </p> を試してください
Boolean isFelxibleRetrievalSupport = offlineMessageManager.supportsFlexibleRetrieval(); </p>
イテレータ i = (イテレータ) offlineMessageManager.getMessages(); </p>
while (i.hasNext())
{ メッセージ msg = i.next(); System.out.println("Get text [" + msg.getBody() + "] from [" + msg.getFrom() + "]");
キャッチ (XMPPException e)
{ System.out.println("エラー オフライン メッセージ"); e.printStackTrace(); }
キャッチ (SmackException.NotConnectedException e)
{ System.out.println("エラー オフライン メッセージ。接続なし"); e.printStackTrace(); }
キャッチ (SmackException.NoResponseException e)
{ System.out.println("エラー オフライン メッセージ。応答なし"); e.printStackTrace(); }
問題ケース 1:
以下は、上記のコードが実行されたときに生成される例外の詳細です
以下のコード行を実行すると例外が発生しました。
イテレータ i = (イテレータ) offlineMessageManager.getMessages(); </p>
以下は、上記の行が実行されたときに生成される例外の説明です
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: service-unavailable - キャンセル
問題ケース 2:
チェックが xmmp mongoose サーバーからの smack を使用して Android コードからサポートされている柔軟なオフライン メッセージである場合、false 値が得られます。以下は、テストに使用したコードです。
Boolean isFelxibleRetrievalSupport = offlineMessageManager.supportsFlexibleRetrieval();
問題ケース 3:
以下のようなスマックコードを使用して、以下のメソッドを使用してサポートされている機能を取得しようとすると。
ServiceDiscoveryManager manager = ServiceDiscoveryManager
.getInstanceFor(接続);
List AllFetures = manager.getFeatures();
以下は、私が取得した機能リストです。
http://jabber.org/protocol/bytestreams、
jabber:iq:privacy、urn:xmpp:ping、
http://jabber.org/protocol/commands、
jabber:iq:バージョン、
jabber:iq:最後、
http://jabber.org/protocol/xdata-validate、
http://jabber.org/protocol/xhtml-im、
vcard-temp、
http://jabber.org/protocol/chatstates、
壷:xmpp:領収書、壷:xmpp:時間、
http://jabber.org/protocol/xdata-layout、
http://jabber.org/protocol/muc、
http://jabber.org/protocol/disco#items、
http://jabber.org/protocol/disco#info、
http://jabber.org/protocol/caps、
jabber:x:データ
XMPP MongooseIM からパッケージ リスナーを使用してオフライン メッセージを取得しようとしました
以下は、smack api 4.1.6 のパッケージ リスナーを使用して試したコードです。
private static final StanzaFilter MESSAGE_PACKET_FILTER= new OrFilter(StanzaTypeFilter.MESSAGE);
構成 = XMPPTCPConnectionConfiguration.builder()
// 詳細が設定された xmpp 接続の Connection オブジェクトを作成します
接続 = 新しい XMPPTCPConnection(構成);
connection.addAsyncStanzaListener(new StanzaListener() {
connection.login(ユーザー、パスワード);
事前に感謝します。私の重大な問題に対する最善の解決策を誰か助けてください。
mongoose-im - mysql db を mongooseim のデフォルト db として設定するにはどうすればよいですか
データベースのみを作成して(mongoosedbのように)mysqlデータベース名を提供し、それに応じてejabberd.cfgファイルを変更します。mongooseim を再起動した後も、データベースにユーザー エントリを取得できません。だから、mysqlをデフォルトのデータベースとして設定するために何をする必要がありますか。
私のejabberd confファイルがあります:
私のデータベースがあります:
mysql - MySQLDB に接続された MongooseIM が DB に何も格納していない
mnesia の代わりに SQL db リンクについて MongooseIM サイトに記載されている指示に従って、SQL データベースに接続しました。ejabberd.cfgファイルを変更しましたが、DB に値が表示されません。
ただし、>mongooseimctl registered_users localhost コマンドを実行すると、ユーザーの一覧が表示されます。SQL でそれらを表示する方法と、これらが実際に格納されている場所。
asp.net - .Net サービスを使用して MongooseIM サーバーにユーザーを登録する方法
ユーザー プロファイルやその他のアクティビティを保持する .Net Web メカニズムを実装しようとしています。
成功すると、ユーザーはチャットできるようになるため、JID を作成して MongooseIM サーバーに登録する必要があります。
これは、ユーザーの JID を生成し、次のようなアクションを実行するために、Asp .Net サーバーによって実行される必要があります。$sudo bin/mongooseimctl register username hostname password.
アカウントの削除がユーザーによって呼び出され、Asp .Net が MIM と通信して$sudo bin/mongooseimctl unregister username hostname
コマンドを実行する場合、同様のアクティビティが実行されます。
次の方法でこれを達成する方法はありますか。
1) 試した Curl コマンドは PHP ですが、これを行う方法についてさらにガイダンスが必要です。2) MongooseIM には、mongooseimctl コマンドを実行するために Web サービスの外部に公開する機能がありますか。
与えられたリードに感謝します。