인터넷과 모바일 인터넷의 급속한 발전으로 인해 실시간 통신 기술은 많은 애플리케이션에서 없어서는 안될 부분이 되었습니다. Tencent Cloud IM(인스턴트 메시징 IM)은 중국 최고의 실시간 커뮤니케이션 플랫폼 중 하나로 그 기능과 성능도 널리 인정받고 있습니다. 이 기사에서는 실시간 통신 작업을 위해 ThinkPHP6 프레임워크에서 Tencent Cloud IM을 사용하는 방법을 소개합니다.
1. Tencent Cloud IM 계정을 신청하세요
먼저 Tencent Cloud 공식 홈페이지(https://cloud.tencent.com/product/im)에 접속하셔서 IM 서비스를 신청하셔야 합니다. 등록이 완료되면 콘솔에서 애플리케이션을 생성하고 해당 SDKAppID, 식별자 및 SecretKey를 가져옵니다. 이 정보는 후속 구성에 사용됩니다.
2. 공식 IM SDK 설치
Tencent Cloud는 개발자가 사용할 수 있도록 다양한 언어로 IM SDK를 제공합니다. 이 글에서는 주로 IM SDK의 PHP 버전을 소개합니다. 공식 GitHub 저장소(https://github.com/tencentyun/TIMServer/tree/master/examples/php)에 들어가 최신 php-sdk-v4를 다운로드하세요.
ThinkPHP6 애플리케이션 디렉토리에서 작곡가를 통해 ImSDK 패키지를 설치하고 IM SDK의 자동 로딩을 실현하려면 작곡가 필요 tencentyun/php-sdk-v4:latest 명령을 실행하세요.
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
为用户在应用中的标识,exp_time
为身份凭证的有效时间,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 중국어 웹사이트의 기타 관련 기사를 참조하세요!