2016-04-12 18 views
0

私はアンドロイドアプリのSmackライブラリ経由でXMPPクライアントを作成しようとしています。 目標は、自分のアプリでチャット機能を実装する際にGCM-XMPPを使用することです。私が読んできたことから、ChatManager、Chat、MessageなどのSmackクラスを使用して、ユーザー間でチャットを作成し、チャット・メッセージ・リスナーを追加することもできました。一方、スタンザを作成するために、チャットマネージャ、チャット、メッセージクラスでパケットを使って同じことをすることができます。 GCMのドキュメントからわかるように、これらのスタンザは、アプリケーションサーバーとGCM CCSサーバー間のACKメッセージとNACKメッセージを確認するために必要になります。私が間違っていれば私を修正してください。チャットアプリケーションでGCM機能を実装すると、これらのパケット/スタンザを作成するほうがより便利になります。XMPPチャットアンドロイドアプリでOpenFireの役割

また、私はまだOpenFireの役割を理解していません。テスト用に私のLocalhostにOpenFireをインストールしました。私にとっては、Smackクラスで作成されたチャットエラーをデバッグできるインターフェースのように思えます。私のアプリのチャット機能をテストしている間、このOpenFireをコンピュータで開くべきですか?私はすでにOpenFireをダウンロードしており、それは自分のlocalhostデータベースに必要なテーブルを作成しました。

私はトラブルそのパラメータを理解していますいくつかのコードもあります:上記のコードで

XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder(); 
configBuilder.setUsernameAndPassword("username", "password"); 
configBuilder.setResource("SomeResource"); 
configBuilder.setServiceName("jabber.org"); 
AbstractXMPPConnection connection = new XMPPTCPConnection(configBuilder.build()); 
connection.connect(); 
connection.login(); 

は、「ユーザ名」と「パスワード」がどうあるべきか、。自分のlocalhostにログインするために使用するユーザー名とパスワード、または自分のアプリケーションで自分自身をチャッターとして識別するために使用しているユーザー名とパスワードでなければなりませんか? .setServiceName( "jabber.org")はどうですか?アンドロイドエミュレータでlocalhostをテストしているので、ここで10.0.2.2を設定する必要がありますか?私はOpenFireと入力する必要がありますか? これが発生した場合:connection.connect()、この接続はどこに接続していますか? OpenFireまたはLocalhost?どこにログインしていますか?

そのsiteに述べたように何かアドバイスは

答えて

1

を理解されるであろう。

Openfireは、リアルタイムコラボレーション(RTC)サーバーです。インスタントメッセージングのために広く採用されている XMPP( Jabberとも呼ばれます)のみを使用します。

アプリケーションサーバーからGCMサーバーへの呼び出しを行うために、HTTPまたはXMPPプロトコルに従うことができます。 HTTPはダウンストリーム(gcmからクライアントへ)メッセージのみをサポートします。 XMPPは、ダウンストリームとアップストリームの両方(gcmからデバイスへ、次にgcmからサーバーへ)のメッセージをサポートします。これは、Openfireが来るところです。

上記のコードでは、「username」と「password」は何が必要ですか?

ユーザ名 - ユーザ名または認証アイデンティティ

パスワード - パスワードまたはを.setServiceName( "jabber.org")について

何を認証するために使用されるトークン?

使用するリソースを設定します。 resourceがnullの場合、サーバーは自動的にクライアントのリソースを作成します。デフォルトのリソースは「Smack」です。

この接続はどこに接続されていますか?

これはOpenFireに接続します。

アンドロイドエミュレータでローカルホストをテストしているので、ここで10.0.2.2を設定する必要がありますか?

ポートは、XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()の.setPort( "8222")部分に設定されています。

スタートガイドのその他の情報here

XMPP tutorialを使いましょう。

関連する問題