5

XMPPサーバーは初めてです。マルチユーザーチャットアプリを作りたいです。

Openfire をインストールし、1 対 1 のチャットは正常に機能していますが、マルチ ユーザー チャット用に PHP を使用して会議 (チャット) ルームを作成し、ルームにユーザーを追加することができません。

Openfire で利用可能な MUC サービス プラグインをインストールしましたが、MUC サービス REST/HTTP を PHP で実装する方法がわかりません。

チャット ルームを作成し、チャット ルームにユーザーを追加するための MUC サービス用のサンプル PHP スクリプトを誰か持っている人はいますか?

前もって感謝します

4

1 に答える 1

1

ヘルプ情報に基づく:

基本 HTTP 認証

すべての REST エンドポイントは、基本 HTTP 認証によって保護されています。

エンドポイントにアクセスするには、ヘッダー リクエストで Openfire 管理者アカウントのユーザー名とパスワードを送信する必要があります。

例 ヘッダー: Authorization: Basic YWRtaW46MTIzNDU= (ユーザー名: admin / パスワード: 12345)

ジャージー クライアントの例

クライアント c = Client.create(); c.addFilter(新しい HTTPBasicAuthFilter(ユーザー、パスワード));

POST /mucservice/chatrooms エンドポイントで新しいチャット ルームを作成します。

ペイロード: チャットルーム戻り値: HTTP ステータス 201 (作成済み)

可能なパラメータ

パラメータ パラメータ タイプ 説明 デフォルト値 servicename @QueryParam グループ チャット サービス会議の名前 例

ヘッダー: 承認: 基本 YWRtaW46MTIzNDU=

ヘッダー: コンテンツ タイプ: application/xml

POST http://example.org:9090/plugins/mucservice/chatrooms

ペイロードの例 1 (必須パラメーター):

global-1 グローバル グローバル チャット ルーム

PHP コードは次のようになります (MUCservice バージョン 0.2.3 Openfire 3.10.0 でテスト済み):

function createRoom($naturalName, $roomName, $description) {
    $url = "http://localhost:9090/plugins/mucservice/chatrooms";
    $data = "<chatRoom>
                <naturalName>$naturalName</naturalName>
                <roomName>$roomName</roomName>
                <description>$description</description>
            </chatRoom>";
    $username = "admin";
    $password = "12345";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PORT, "9090");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_HTTPHEADER,
                     array('Content-Type: application/xml',
                           'Authorization: Basic '.base64_encode("$username:$password")));
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    echo "code " . $code;
    print_r($res);
    curl_close($ch);
}

createRoom("room", "room", "room");
于 2015-05-27T11:14:42.103 に答える