Heim  >  Artikel  >  PHP-Framework  >  Wie verwende ich Tencent Cloud IM für Echtzeit-Kommunikationsvorgänge in ThinkPHP6?

Wie verwende ich Tencent Cloud IM für Echtzeit-Kommunikationsvorgänge in ThinkPHP6?

WBOY
WBOYOriginal
2023-06-12 08:03:111773Durchsuche

Mit der rasanten Entwicklung des Internets und des mobilen Internets ist die Echtzeit-Kommunikationstechnologie zu einem unverzichtbaren Bestandteil vieler Anwendungen geworden. Als eine der führenden Echtzeit-Kommunikationsplattformen in China ist Tencent Cloud IM (d. h. Instant Messaging IM) auch für seine Funktionen und Leistung weithin anerkannt. In diesem Artikel wird erläutert, wie Sie Tencent Cloud IM im ThinkPHP6-Framework für Echtzeit-Kommunikationsvorgänge verwenden.

1. Beantragen Sie ein Tencent Cloud IM-Konto

Zunächst müssen Sie sich auf der offiziellen Website von Tencent Cloud (https://cloud.tencent.com/product/im) registrieren und IM-Dienste beantragen. Erstellen Sie nach Abschluss der Registrierung eine Anwendung in der Konsole und rufen Sie die entsprechende SDKAppID, den Identifier und den SecretKey ab. Diese Informationen werden in der nachfolgenden Konfiguration verwendet.

2. Installieren Sie das offizielle IM SDK

Tencent Cloud stellt Entwicklern das IM SDK zur Verwendung bereit. In diesem Artikel wird hauptsächlich die PHP-Version des IM SDK vorgestellt. Rufen Sie das offizielle GitHub-Repository (https://github.com/tencentyun/TIMServer/tree/master/examples/php) auf, um das neueste php-sdk-v4 herunterzuladen.

Installieren Sie im ThinkPHP6-Anwendungsverzeichnis das ImSDK-Paket über Composer und führen Sie den Befehl aus: Composer require tencentyun/php-sdk-v4:latest, um das automatische Laden des IM SDK zu realisieren.

3. Konfigurieren Sie das IM SDK

Fügen Sie in der ThinkPHP6-Projektkonfigurationsdatei (Standard ist config/app.php) die folgenden Konfigurationselemente hinzu:

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

Daunter ist sdk_app_id为申请IM服务时获得的应用ID,identifier为用户在应用中的标识,exp_time为身份凭证的有效时间,private_key为申请IM服务时获得的应用密钥,http_scheme为通信协议,account_type der Kontotyp (Standard ist 1).

4. IM SDK integrieren

In ThinkPHP6 können Sie den Service-Container zum Integrieren des IM SDK verwenden. Zuerst müssen Sie ein Service-Verzeichnis im Projektstammverzeichnis erstellen und in diesem Verzeichnis eine neue IMService-Klasse erstellen. Der Code dieser Klasse lautet wie folgt:

<?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);
    }
}

Diese Klasse implementiert hauptsächlich die Erstellung einer IM-Dienstinstanz und kapselt einige IM-Vorgänge, z. B. das Erstellen von Gruppen.

Als nächstes erstellen Sie eine im.php-Datei im Verzeichnis config/, um die Bindung des Dienstcontainers festzulegen. Der Code lautet wie folgt:

<?php
use appserviceIMService;
return [
    'im' => IMService::class,
];

Dieser Code bindet die IMService-Klasse an den Namen im im Dienstcontainer.

Wenn schließlich der IM-Dienst verwendet werden muss, z. B. im Controller, kann der gebundene Dienst wie folgt durch Abhängigkeitsinjektion verwendet werden:

<?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'],
            ],
        ]);
    }
}

Der obige Code injiziert den IMService-Dienst durch Abhängigkeitsinjektion und verwendet den Dienst um eine neue Kreation im Controller zu erstellen. Eine Tencent Cloud IM-Gruppe hat die Gruppen-ID zurückgegeben. Andere IM-Vorgänge können nach Bedarf durchgeführt werden.

5. Fazit

In diesem Artikel wird erläutert, wie Sie Tencent Cloud IM in ThinkPHP6 für Echtzeit-Kommunikationsvorgänge verwenden. Durch Konfiguration, Integration und Abhängigkeitsinjektion können Sie Tencent Cloud IM problemlos verwenden, um verschiedene Echtzeit-Kommunikationsvorgänge durchzuführen, z. B. das Erstellen von Gruppen, das Senden von Nachrichten usw. Darüber hinaus können je nach Bedarf weitere IM-Funktionen entwickelt werden, wie zum Beispiel Instant Messaging, Videoanrufe usw.

Das obige ist der detaillierte Inhalt vonWie verwende ich Tencent Cloud IM für Echtzeit-Kommunikationsvorgänge in ThinkPHP6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn