Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menggunakan Tencent Cloud IM untuk operasi komunikasi masa nyata dalam ThinkPHP6?

Bagaimana untuk menggunakan Tencent Cloud IM untuk operasi komunikasi masa nyata dalam ThinkPHP6?

WBOY
WBOYasal
2023-06-12 08:03:111762semak imbas

Dengan perkembangan pesat Internet dan Internet mudah alih, teknologi komunikasi masa nyata telah menjadi bahagian yang amat diperlukan dalam banyak aplikasi. Sebagai salah satu platform komunikasi masa nyata terkemuka di China, Tencent Cloud IM (iaitu IM Pemesejan Segera) juga telah diiktiraf secara meluas untuk fungsi dan prestasinya. Artikel ini akan memperkenalkan cara menggunakan Tencent Cloud IM dalam rangka kerja ThinkPHP6 untuk operasi komunikasi masa nyata.

1. Mohon untuk akaun Tencent Cloud IM

Pertama, anda perlu pergi ke laman web rasmi Tencent Cloud (https://cloud.tencent.com/product/im) untuk mendaftar dan memohon perkhidmatan IM. Selepas pendaftaran selesai, pergi ke konsol untuk membuat aplikasi dan dapatkan SDKAppID, Pengecam dan SecretKey yang sepadan Maklumat ini akan digunakan dalam konfigurasi seterusnya.

2. Pasang IM SDK rasmi

Tencent Cloud menyediakan IM SDK dalam pelbagai bahasa untuk digunakan oleh pembangun Artikel ini terutamanya memperkenalkan versi PHP IM SDK. Masukkan repositori GitHub rasmi (https://github.com/tencentyun/TIMServer/tree/master/examples/php) untuk memuat turun php-sdk-v4 yang terkini.

Dalam direktori aplikasi ThinkPHP6, pasang pakej ImSDK melalui komposer dan laksanakan arahan: composer require tencentyun/php-sdk-v4:latest untuk merealisasikan pemuatan automatik IM SDK.

3. Konfigurasikan IM SDK

Dalam fail konfigurasi projek ThinkPHP6 (lalai ialah config/app.php), tambah item konfigurasi berikut:

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

Antaranya, sdk_app_id ialah ID permohonan yang diperoleh semasa memohon perkhidmatan IM, identifier ialah pengenalan pengguna dalam aplikasi, exp_time ialah masa sah sijil pengenalan, private_key ialah kunci permohonan yang diperoleh semasa memohon perkhidmatan IM, http_scheme ialah protokol Komunikasi, account_type ialah jenis akaun (lalai ialah 1).

4. Sepadukan IM SDK

Dalam ThinkPHP6, anda boleh menggunakan bekas perkhidmatan untuk menyepadukan IM SDK Pertama, anda perlu mencipta direktori Perkhidmatan dalam direktori akar projek dan mencipta IMService baharu kelas dalam direktori ini. Kod kelas ini adalah seperti berikut:

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

Kelas ini terutamanya melaksanakan penciptaan contoh perkhidmatan IM dan merangkum beberapa operasi IM, seperti mencipta kumpulan.

Seterusnya, buat fail im.php dalam direktori config/ untuk menetapkan pengikatan bekas perkhidmatan Kod adalah seperti berikut:

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

Kod ini menghubungkan kelas IMService dengan perkhidmatan. bekas Nama im terikat kepada.

Akhir sekali, di mana perkhidmatan IM perlu digunakan, seperti dalam pengawal, perkhidmatan terikat boleh digunakan melalui suntikan kebergantungan, seperti berikut:

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

Kod di atas menyuntik perkhidmatan IMService melalui suntikan pergantungan, dalam Pengawal menggunakan perkhidmatan ini untuk mencipta kumpulan Tencent Cloud IM dan mengembalikan ID kumpulan. Operasi IM lain boleh dilakukan mengikut keperluan.

5. Kesimpulan

Artikel ini memperkenalkan cara menggunakan Tencent Cloud IM dalam ThinkPHP6 untuk operasi komunikasi masa nyata. Melalui konfigurasi, penyepaduan dan suntikan pergantungan, anda boleh menggunakan Tencent Cloud IM dengan mudah untuk melaksanakan pelbagai operasi komunikasi masa nyata, seperti membuat kumpulan, menghantar mesej, dsb. Selain itu, lebih banyak fungsi IM boleh dibangunkan mengikut keperluan khusus, seperti pemesejan segera, panggilan video, dsb.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Tencent Cloud IM untuk operasi komunikasi masa nyata dalam ThinkPHP6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn