2

Openfire サーバー用に作成されたプラグインとの間でパケットを送受信する単純な Android アプリケーションを実装しようとしています。プラグインは、さらに処理するためにクライアントからパケットを受信することを目的としています。なのでチャットではありません。次のコード スニペットは、サーバーにパケットを送信する方法を示しています。

ConnectionConfiguration configuration = new ConnectionConfiguration(
        HOST, PORT);
Connection connection = new XMPPConnection(configuration);
try {
    connection.connect();
} catch (XMPPException e) {
    e.printStackTrace();
}
if (connection.isConnected()) {
    Packet packet = new Message();
    packet.setFrom("123456789@localhost");
    packet.setTo("987654321@component.localhost");
    connection.sendPacket(packet);
    connection.disconnect();
}

HOST と PORT は定義済みの定数です。

プラグイン内のif句でコードを使用しようとしましたが、完全に機能しました-コンポーネントはパケットを受信して​​それらを処理します。ただし、私の Android アプリケーションでは、このコードは機能しません。パケットがコンポーネントに到達しません。

皆さん、何か提案があれば、私はあなたの助けに大いに役立ちます. どこかで間違ったテクニックを使用しているのかもしれません - XMPP と Openfire は初めてです。


アップデート

アプリケーションのマニフェストには、必要なすべてのアクセス許可があります。HOST は、Openfire サーバーを実行している PC の静的 IP アドレスと同じです。

private static final String HOST = "192.168.1.100";
private static final int PORT = 5222;
4

2 に答える 2

0

login()サーバーにパケットを送信するには、またはクラスloginAnonymously()のメソッドを使用してサーバーにログインする必要があります。org.jivesoftware.smack.Connection

ありがとうございます。ヒントの流れ。

于 2012-08-11T11:17:41.310 に答える
0

接続と切断

// Create the configuration for this new connection
ConnectionConfiguration config = new ConnectionConfiguration("jabber.org", 5222);
config.setCompressionEnabled(true);
config.setSASLAuthenticationEnabled(true);

Connection connection = new XMPPConnection(config);
// Connect to the server
connection.connect();
// Log into the server
connection.login("username", "password", "SomeResource");
....
// Disconnect from the server
connection.disconnect();
</code>

最初にログインする必要があります。接続を管理するためのガイドは次のとおりですhttp://www.igniterealtime.org/builds/smack/docs/latest/documentation/connections.html

于 2012-08-29T06:33:39.730 に答える