ホームページ > PHPフレームワーク > ThinkPHP > ThinkPHP6 でのリアルタイム通信操作に Tencent Cloud IM を使用するにはどうすればよいですか?

ThinkPHP6 でのリアルタイム通信操作に Tencent Cloud IM を使用するにはどうすればよいですか?

WBOY
リリース: 2023-06-12 08:03:11
オリジナル
1811 人が閲覧しました

インターネットとモバイル インターネットの急速な発展に伴い、リアルタイム通信テクノロジは多くのアプリケーションにとって不可欠な部分になりました。 Tencent Cloud IM (インスタント メッセージング IM) は、中国有数のリアルタイム コミュニケーション プラットフォームの 1 つとして、その機能とパフォーマンスでも広く認められています。この記事では、リアルタイム通信操作のために ThinkPHP6 フレームワークで Tencent Cloud IM を使用する方法を紹介します。

1. Tencent Cloud IM アカウントの申請

まず、Tencent Cloud 公式 Web サイト (https://cloud.tencent.com/product/im) にアクセスして登録する必要があります。 IM サービスを申し込みます。登録が完了したら、コンソールでアプリケーションを作成し、対応する SDKAppID、Identifier、SecretKey を取得します。この情報は後続の設定で使用されます。

2. 公式 IM SDK をインストールします

Tencent Cloud では、開発者が使用できるように多言語の IM SDK が提供されていますが、この記事では主に PHP 版の IM SDK を紹介します。公式 GitHub リポジトリ (https://github.com/tencentyun/TIMServer/tree/master/examples/php) にアクセスして、最新の php-sdk-v4 をダウンロードします。

ThinkPHP6 アプリケーション ディレクトリで、composer を介して ImSDK パッケージをインストールし、コマンド「composer require tencentyun/php-sdk-v4:latest」を実行して、IM SDK の自動読み込みを実現します。

3. IM SDK の設定

ThinkPHP6 プロジェクト設定ファイル (デフォルトは config/app.php) に、次の設定項目を追加します:

'imsdk' => [
    'sdk_app_id'   => 'SDKAppID',   // 应用ID
    'identifier'   => 'Identifier', // 用户标识
    'exp_time'     => 86400,        // 身份凭证有效时间(单位:秒)
    'private_key'  => 'SecretKey',  // 应用密钥
    'public_key'   => 'PublicKey',  // 公钥,非必填项
    'http_scheme'  => 'https',      // HTTPS协议
    'account_type' => '1',          // 账号类型,非必填项
],
ログイン後にコピー

その中に、 sdk_app_id は IM サービスの申請時に取得したアプリケーション ID、identifier はアプリケーションでのユーザーの ID、exp_time は ID 証明書の有効期間、private_key は IM サービスの申し込み時に取得したアプリケーション キー、http_scheme は通信プロトコル、account_type はアカウントの種類 (デフォルトは 1) です。

4. IM SDK の統合

ThinkPHP6 では、サービス コンテナを使用して IM SDK を統合できます。まず、プロジェクトのルート ディレクトリに Service ディレクトリを作成し、新しい IMService を作成する必要がありますこのディレクトリ内のクラス。このクラスのコードは次のとおりです。

<?php
namespace appservice;

use IlluminateSupportFacadesLog;
use TencentyunTIMTIMSdk;

class IMService
{
    private $sdk;

    public function __construct()
    {
        $sdk = new TIMSdk(config('imsdk.sdk_app_id'), config('imsdk.identifier'));
        $sdk->setPrivateKey(config('imsdk.private_key'));
        $sdk->setPublickey(config('imsdk.public_key', ''));
        $sdk->setExpire(config('imsdk.exp_time'));
        $sdk->setAccountType(config('imsdk.account_type', '1'));
        $sdk->setHttpScheme(config('imsdk.http_scheme', 'https'));
        $this->sdk = $sdk;
    }

    public function createGroup($name)
    {
        $group = $this->sdk->getGroup();
        $data = [
            'Type' => 'Public',   // 群组类型(Public:公开群)
            'Name' => $name,      // 群组名称
        ];
        return $group->create($data);
    }
}
ログイン後にコピー

このクラスは主に IM サービス インスタンスの作成を実装し、グループの作成などの一部の IM 操作をカプセル化します。

次に、config/ ディレクトリに im.php ファイルを作成して、サービス コンテナのバインドを設定します。コードは次のとおりです:

<?php
use appserviceIMService;
return [
    'im' => IMService::class,
];
ログイン後にコピー

このコードは、IMService クラスをサービスに接続します。コンテナ im がバインドされている名前。

最後に、コントローラー内など、IM サービスを使用する必要がある場合は、次のように依存関係の挿入を通じてバインドされたサービスを使用できます。

<?php
namespace appcontroller;

use appserviceIMService;
use thinkacadeRequest;

class Index
{
    public function index(IMService $im)
    {
        $groupName = Request::param('groupName');
        $result = $im->createGroup($groupName);
        if ($result['ErrorCode'] > 0) {
            return json([
                'code' => 0,
                'msg'  => $result['ErrorInfo'],
            ]);
        }
        return json([
            'code' => 1,
            'msg'  => '创建群组成功',
            'data' => [
                'groupId' => $result['GroupId'],
            ],
        ]);
    }
}
ログイン後にコピー

上記のコードは、IMService サービスを挿入します。依存関係注入を通じて、コントローラーはこのサービスを使用して Tencent Cloud IM グループを作成し、グループ ID を返します。必要に応じて、他の IM 操作を実行できます。

5. 結論

この記事では、ThinkPHP6 で Tencent Cloud IM を使用してリアルタイム通信操作を行う方法を紹介します。構成、統合、依存関係の挿入を通じて、Tencent Cloud IM を使用して、グループの作成、メッセージの送信など、さまざまなリアルタイム通信操作を簡単に実行できます。さらに、インスタント メッセージング、ビデオ通話など、特定のニーズに応じてさらに多くの IM 機能を開発できます。

以上がThinkPHP6 でのリアルタイム通信操作に Tencent Cloud IM を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート