問題タブ [xmppframework]

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.

0 投票する
1 に答える
809 参照

ios - XMPPFramework-Openfireサーバーへの連絡先の追加

Objective-Cを使用してXMPPFrameworkを介してOpenfireで別のユーザーの連絡先にユーザーを追加するにはどうすればよいですか?また、iPhoneアプリケーションでそれをレンダリングするにはどうすればよいですか?

0 投票する
1 に答える
3843 参照

ios - iPhone Jabber/XMPPクライアント...「TURN接続に失敗しました」

単純なJabberクライアントを構築しようとしています。xmpp -frameworkhttps ://github.com/funkyboy/Building-a-Jabber-client-for-iOSを使用するこのサンプルプロジェクトをダウンロード しました。iOSシミュレーターで実行しています。Openfireをローカルにインストールして、iChatにログインしているユーザーとやり取りできるようにしました。

残念ながら、アプリはメッセージのみを受信します。メッセージの送信に失敗し、「TURN接続に失敗しました!」というエラーが表示されます。

これは接続しようとしているコードです:

そして、それらは成功/失敗で呼び出されるメソッドです:

誰か助けてもらえますか?ありがとうございました。

0 投票する
2 に答える
692 参照

xcode - ファイルの転送を受け入れる

Adium クライアントを iPhone シミュレーターに接続すると、すべてが接続され、TurnSocket が成功します。adium でファイルを送信すると、この「iq」が受信されます。

それは譲渡を受け入れるためのメッセージだと思いますよね?

それを受け入れるために私は何をしなければなりませんか?

ありがとう

0 投票する
1 に答える
2692 参照

ios - XMPPFramework - iOS でプレゼンスが受信されない

シミュレーターからデバイスにメッセージを送信しようとしています。シミュレーターには 1 人のユーザーがいますが、デバイスには別のユーザーがいます。しかし、プレゼンスはどこまでも受け取られていません。iOS用のXMPPFrameworkを使用しています。プレゼンスを送信するために使用しているコードは次のとおりです

しかし、最後にuser1@server.comログインしている場所では、次のメソッドは呼び出されていません

問題は何ですか?

0 投票する
0 に答える
1624 参照

iphone - Openfire prebind +BOSHを使用したrobbiehanson/XMPPFrameworkが機能しない

XMPP私たちは私たちの製品のために実装しようとしていますBOSH。javascriptライブラリはStrophe.js、WWWサイトのニーズに合わせて正常に機能します。プリバインドをリクエストして配信し、Stropheの「attach」メソッドを使用してセッションを開始します。これにより、プレゼンスを更新し、メッセージを送受信できるようになります。XMPPFrameworkiOS側では、BOSHトランスポートを含むrobbiehansonを使用していますが、接続方法はありません。以下は、これを機能させることを試みた私の悲しみの一部です。

事前バインドし、sid / jid / ridを取得してから、boshトランスポートおよびその他のファイル内の内部ロジックを設定して、すでに接続されていることを示します。次に、指定されたSIDを含めてプレゼンスを更新しようとすると、次のように送信します。

BOSH:SEND [1248340729] = <body xmlns = "http://jabber.org/protocol/httpbind" sid = "568a3ae9" ack = "1248340728" rid ="1248340729"><プレゼンス></presents> </ body >>

しかし、まったく返事をもらえません。それが最後です。SIDを指定せずにプレゼンスを更新しようとすると、次のように送信します。

BOSH:SEND [1064338700] = <body xmlns = "http://jabber.org/protocol/httpbind" ack = "1064338699" rid ="1064338700"><プレゼンス></presents> </ body>

そして戻ってください:

BOSH:RECD [1342811427] = <body xmlns = "http://jabber.org/protocol/httpbind" xmlns:stream = "http://etherx.jabber.org/streams" authid = "9ef0ccdb" sid = "9ef0ccdb "secure =" true "requests =" 2 "inactivity =" 300 "polling =" 5 "wait =" 60 "> <stream:features> <mechanisms xmlns =" urn:ietf:params:xml:ns:xmpp-sasl "><メカニズム>プレーン</mechanism></ mechanisms> <compression xmlns =" http://jabber.org/features/compress"> <method> zlib </ method> </ Compression> <bind xmlns =" urn :ietf:params:xml:ns:xmpp-bind "/> <session xmlns =" urn:ietf:params:xml:ns:xmpp-session "/> </ stream:features> </ body>

これは、接続の確認、またはPLAIN情報で応答することを期待する接続チャレンジスタンザのように見えますが、これはprebindですでに確立されています。それが接続の肯定である場合、次の行は意味がありません。上記の接続文字列によって提供されたSIDを使用する場合、それが肯定であるかのように(わかりません)、次の行になります。

BOSH:SEND [1342811427] = <body xmlns = "http://jabber.org/protocol/httpbind" sid = "9ef0ccdb" rid = "1342811428"> <iq type = "set"> <bind xmlns = "urn: ietf:params:xml:ns:xmpp-bind "> <resource> api </ resource> </ bind> </ iq> </ body>

BOSH:RECD [1342811427] = <body xmlns =' http: //jabber.org/protocol/httpbind '> <iq xmlns = "jabber:client" type = "error" to="chat。*。com/9ef0ccdb" > <bind xmlns = "urn:ietf:params:xml:ns:xmpp-bind"> <resource> api </ resource> </ bind> <error code = "401" type ="auth"><未承認xmlns = "urn:ietf:params:xml:ns:xmpp-stanzas" /> </ error> </ iq> </ body>

私は許可されていません。ここで、プリバインド中にネゴシエートされたSIDを使用しようとすると、最後の2行が異なります。

BOSH:SEND [1172064714​​] = <body xmlns = "http://jabber.org/protocol/httpbind" sid = "27e3745b" rid = "1172064715"> <iq type = "set"> <resource> api </ resource > </ bind> </ iq> </ body>

BOSH:RECD [1172064714​​] = <body xmlns = "http://jabber.org/protocol/httpbind"> </ body>

空の応答。次に、プレゼンスを再度更新しようとすると404、無効なSIDがあることを示すリテラルページが表示されます。openfireによって提供されたSIDを使用していたときに、プレゼンスの更新を再試行すると、それは私に与え続けます401 not authorized

どんな助けでも大歓迎です。

0 投票する
1 に答える
3954 参照

iphone - iphoneのXMPPROsterの例?

サンプル コードを確認しましたが、詳細なドキュメントがないとフレームワークの重要な機能を理解できません。通常、フレームワークに関する本はありますが、このフレームワークについては、より主流の使用方法を取り上げるまでは独力であると思われます。

名簿リストを取得するにはどうすればよいですか? XMPPRosterCoreDataStorage には、rosterPopulationSet の NSMutableSet があることがわかります。これは名簿を構成する XMPPUserCoreDataStorageObjects、つまりユーザーのセットですか?

私が推測している方法は、ハックです。発表されたすべてのユーザーの存在を取得し、それを配列に隠します。それらはオンラインの仲間です。どういうわけか名簿リスト全体を取得し、オンラインでない人は全員オフラインです。

XMPPUserCoreDataStorageObjects テーブルに 30 個の連絡先、30 個のエントリなど、XMPPUserCoreDataStorageObjects の配列が必要だと思いますか? このアレイにアクセスするにはどうすればよいでしょうか?また、それらがオンラインかどうかをどのように確認すればよいでしょうか? オンライン ステータスについては、XMPPUserCoreDataStorageObjects にカプセル化されていないので、別のクエリを実行する必要がありますか? didReceivePresence または同様のメソッドを使用できると思いますが、全体として、フレームワークを使用し、それと戦うことはしたくありません。

感謝します!

ありがとう

0 投票する
4 に答える
13852 参照

iphone - Storing messages using XMPPFramework for ios?

I'm not sure how to use the XMPPFramework's core data to store incoming messages. Does anyone have any tutorials on how to do this? I see User objects, which in turn can have many "resources". Is each message received supposed to be a new resource that I create and persist?

I do not know what part is my responsibility and what part the framework provides regarding message history. I can intercept every incoming message. Then am I supposed to create and store each message inside a Messages table using core data? I'd have a Message Entity. And each XMPPUser would have an array of Message objects. But then wouldn't I be rolling my own solution, which would be working against the framework?

Thanks!

0 投票する
1 に答える
2255 参照

iphone - XMPP を使用してリアルタイムの情報を実行中の iOS アプリに送信する

私はiOSアプリを開発しています。アプリにはさまざまな「領域」があり、ユーザーはそれらに「もの」を投稿できます。同じエリアを見ている他のユーザーは、投稿されたものを自分の電話に送信する必要があります (ただし、アプリが実行されている場合のみ)。

RESTful API を使用してDjangoバックエンドの作業を開始しました。Amazon Web Services でバックエンドをホストする予定で、「エリア」に何かが追加されるたびに、Amazon Simple Queue Serviceを使用して更新時間と「エリア」をキューに入れます。キュー内のアイテムを処理する Python アプリを作成し、データベースにクエリを実行して、ダウンロードできる新しい「もの」を持っているユーザーを確認します。現在、この部分では、Apple プッシュ通知を電話に送信する予定です。アプリが実行されている場合、単純な RESTful リクエストを作成して、新しいデータを JSON 形式で取得できます。

ただし、 XMPPの方が ( iOS 側でXMPPFrameworkを使用して) より優れたソリューションであり、将来的には Android をサポートできるようになると思います。


この目的で XMPP を使用する方法について多くの調査を行いましたが、ドキュメントでは、パブリック XMPP ネットワークを使用すること、ユーザーが XMPP アカウントを設定する必要があること、および非暗号化を送信する方法が不明であることを示唆しています。チャット情報。

このプロジェクトでは、サーバーからユーザーのデバイスに情報を送信するためだけに XMPP を使用する必要があります。したがって、必要なユーザーがこのプライベート ネットワークで XMPP アカウントに登録できる場合は、プライベート XMPP ネットワークである必要があります (ただし、舞台裏では、どのテクノロジがアプリを動かしているのかを知る必要はありません)。


モバイルアプリに情報を送信するためだけに XMPP を使用することは可能ですか? インターネット上の多くの回答/チュートリアルは、基本的にXMPPサーバーとクライアントの使用を提案しているだけです-プライベートネットワークで2つを接続して、XMPPサーバー以外の何かによって決定されたデータを送信する方法については言及されていません.

事前にご協力いただきありがとうございます:)

0 投票する
1 に答える
1663 参照

objective-c - Objective-CXMPPFrameworkオフラインキュー

https://github.com/robbiehanson/XMPPFramework/wikiに精通している人を見つけたいと思っています

私のアプリケーションは、アプリケーションを実行している他の電話とiChatの間でメッセージを送受信します。ラックスペースにインストールされたeJabberdを使用しています。

問題は、自分の電話でオフラインの電話にメッセージを送信した場合、ユーザーがアプリケーションでオンラインになったときにメッセージを受信しないことです(iChatでもメッセージはキューに入れられません)。

ただし、iChatを介してメッセージを送信し、電話でアプリケーションにログインすると、メッセージは問題なく届きます。

何らかの理由で、上記のXMPPFrameworkを使用してメッセージを送信する方法が、サーバーのキューイング機能をトリガーしていないように見えます。私はここの仕様に従って、これとまったく同じように見えるメッセージを送信しました(異なるユーザー名で)

残念ながら、同じ結果になります。私はiChatの発信XMLがどのように見えるかを表示する方法を見つけようとしてきましたが、役に立ちませんでした。うまくいけば、以前にこの問題に遭遇したことがある誰かがそこにいます。

0 投票する
1 に答える
1537 参照

iphone - (iOS) jabber サーバーへの再帰的な vCard-temp 要求?

xmpframework を使用して iPhone アプリを作成しています。すべて正常に動作しますが、次のコードでプロファイル画像を更新したいと考えています。そして、サーバーへの再帰的な vCard-temp リクエストが正しくありませんでした。しかし、写真が更新され、名簿のすべての友達に通知されました.

以下の出力と説明

これまでに見つけたものは、以下がこの問題の原因ですが、どこで修正できるかわかりません。