Maison > cadre php > PensezPHP > Comment utiliser Tencent Cloud IM pour les opérations de communication en temps réel dans ThinkPHP6 ?

Comment utiliser Tencent Cloud IM pour les opérations de communication en temps réel dans ThinkPHP6 ?

WBOY
Libérer: 2023-06-12 08:03:11
original
1808 Les gens l'ont consulté

Avec le développement rapide d'Internet et de l'Internet mobile, la technologie de communication en temps réel est devenue un élément indispensable de nombreuses applications. En tant que l'une des principales plates-formes de communication en temps réel en Chine, Tencent Cloud IM (c'est-à-dire Instant Messaging IM) a également été largement reconnue pour ses fonctions et ses performances. Cet article explique comment utiliser Tencent Cloud IM dans le framework ThinkPHP6 pour les opérations de communication en temps réel.

1. Demandez un compte Tencent Cloud IM

Tout d'abord, vous devez vous rendre sur le site officiel de Tencent Cloud (https://cloud.tencent.com/product/im) pour vous inscrire et postuler aux services de messagerie instantanée. Une fois l'enregistrement terminé, accédez à la console pour créer une application et obtenez le SDKAppID, l'identifiant et la SecretKey correspondants. Ces informations seront utilisées dans la configuration ultérieure.

2. Installez le SDK IM officiel

Tencent Cloud fournit le SDK IM dans plusieurs langues que les développeurs peuvent utiliser. Cet article présente principalement la version PHP du SDK IM. Entrez dans le référentiel officiel GitHub (https://github.com/tencentyun/TIMServer/tree/master/examples/php) pour télécharger le dernier php-sdk-v4.

Dans le répertoire de l'application ThinkPHP6, installez le package ImSDK via composer et exécutez la commande : composer require tencentyun/php-sdk-v4:latest pour réaliser le chargement automatique du SDK IM.

3. Configurez IM SDK

Dans le fichier de configuration du projet ThinkPHP6 (la valeur par défaut est config/app.php), ajoutez les éléments de configuration suivants :

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

Parmi eux, sdk_app_id为申请IM服务时获得的应用ID,identifier为用户在应用中的标识,exp_time为身份凭证的有效时间,private_key为申请IM服务时获得的应用密钥,http_scheme为通信协议,account_type est le type de compte (la valeur par défaut est 1).

4. Intégrer le SDK IM

Dans ThinkPHP6, vous pouvez utiliser le conteneur de service pour intégrer le SDK IM. Tout d'abord, vous devez créer un répertoire Service dans le répertoire racine du projet et créer une nouvelle classe IMService dans ce répertoire. Le code de cette classe est le suivant :

<?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);
    }
}
Copier après la connexion

Cette classe implémente principalement la création d'une instance de service de messagerie instantanée et encapsule certaines opérations de messagerie instantanée, telles que la création de groupes.

Ensuite, créez un fichier im.php dans le répertoire config/ pour définir la liaison du conteneur de service. Le code est le suivant :

<?php
use appserviceIMService;
return [
    'im' => IMService::class,
];
Copier après la connexion

Ce code lie la classe IMService au nom im dans le conteneur de service.

Enfin, là où le service IM doit être utilisé, comme dans le contrôleur, le service lié peut être utilisé via l'injection de dépendances, comme suit :

<?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'],
            ],
        ]);
    }
}
Copier après la connexion

Le code ci-dessus injecte le service IMService via l'injection de dépendances et utilise le service pour créer une nouvelle création dans le contrôleur Un groupe Tencent Cloud IM a renvoyé l'ID de groupe. D'autres opérations de messagerie instantanée peuvent être effectuées selon les besoins.

5. Conclusion

Cet article présente comment utiliser Tencent Cloud IM dans ThinkPHP6 pour les opérations de communication en temps réel. Grâce à la configuration, à l'intégration et à l'injection de dépendances, vous pouvez facilement utiliser Tencent Cloud IM pour effectuer diverses opérations de communication en temps réel, telles que la création de groupes, l'envoi de messages, etc. De plus, davantage de fonctions de messagerie instantanée peuvent être développées en fonction de besoins spécifiques, comme la messagerie instantanée, les appels vidéo, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal