インターネットとモバイル インターネットの急速な発展に伴い、リアルタイム通信テクノロジは多くのアプリケーションにとって不可欠な部分になりました。 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 thinkacadeRequest; 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 サイトの他の関連記事を参照してください。