


Comment implémenter la fonction de diffusion en direct en PHP : 1. Recherchez le service cloud de diffusion en direct dans la console et créez un espace cloud de diffusion en direct ; 2. Analysez le nom de domaine si nécessaire 3. Installez le package composer ; Diffusion en direct via la méthode liveStart.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3.
Comment implémenter la fonction de diffusion en direct en ligne en php ?
php Qiniu Cloud réalise la fonction de diffusion en direct :
1 : Récemment, je travaille sur un projet de vente de diffusion en direct L'arrière-plan est configuré et prêt à être connecté à la diffusion en direct. J'ai recherché plusieurs Alibaba, TX. et Qiniu, et j'ai découvert que le PHP de diffusion en direct d'Alibaba n'avait que du code et aucune documentation. Mon ami de Texas a dit que le code était compliqué et ne serait pas pris en compte. Lorsque j'ai postulé pour l'espace de diffusion en direct, le nom de domaine a été bloqué par le propriétaire. Le nom de domaine qui a été enregistré doit être enregistré auprès de la sécurité publique du site Web. Une fois
https://developer.qiniu.com/af/kb/3987/how-to-make-website-and-inquires-the-police-put-on-record-information?ref=support.qiniu.com
effectué une nouvelle recherche et constaté que les personnes impliquées dans le secteur des performances en ligne doivent demander une « licence commerciale de culture Internet ». ". Veuillez consulter le service de l'administration culturelle du gouvernement populaire local et attendre que la demande soit complétée avant de passer à l'étape suivante.
Deuxième : L'enregistrement du nom de domaine est enfin terminé. Commençons la deuxième étape pour implémenter la fonction de diffusion en direct. Pour le terminal mobile, vous pouvez vous référer au SDK Qiniu Cloud. côté push cas.Cette fois, rtmp est utilisé. Pour implémenter la diffusion en direct, recherchez le service cloud de diffusion en direct dans la console et créez un espace cloud de diffusion en direct, plusieurs noms de domaine de deuxième niveau seront générés. les noms de domaine selon vos besoins, puis cela ressemblera à ce qui suit
Code en cours d'exécution Après vous être levé, vous verrez l'historique de lecture et d'autres informations du flux en direct que vous avez créé dans le flux en direct
Installez le compositeur. package
php composer.phar require qiniu/php-sdk

<?php namespace App\Modules\Api\Http\Controllers; use App\Modules\Live\Models\Broadcast; use App\Modules\Live\Repositories\BroadcastRepositoryEloquent; use Illuminate\Http\Request; use Qiniu\Pili\Client; use Qiniu\Pili\Mac; use function Qiniu\Pili\RTMPPlayURL; use function Qiniu\Pili\RTMPPublishURL; use function Qiniu\Pili\SnapshotPlayURL; class LiveController extends ApiBaseController { private $auth; private $accessKey; private $secretKey; private $hubName; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->accessKey = config("qiniu.accessKey"); $this->secretKey = config("qiniu.secretKey"); $this->hubName = config("qiniu.bucket"); parent::__construct(); } /** *开启直播 */ public function liveStart(Request $request) { $userInfo = parent::getAuthenticatedUser($msg); if (isset($userInfo['user']) && !empty($userInfo['user'])) { $request->offsetSet('user_id', $userInfo['user']['id']); } else { return $this->sendResponse($msg, 'error', '', 401); } $data = $request->all(); $broadcast = app(BroadcastRepositoryEloquent::class)->findWhere(['type' => $data['type'], 'user_id' => $data['user_id']])->first(); if (empty($broadcast)) { return $this->sendResponse(trans('admin.operate_failed') . '未找到直播间'); } $broadcast['name'] = $data['name']; //创建hub $mac = new Mac($this->accessKey, $this->secretKey); $client = new Client($mac); $hub = $client->hub($this->hubName); //获取stream $streamKey = $broadcast['show_id']; $stream = $hub->stream($streamKey); $list = $hub->listStreams($streamKey, 1, ""); //如果没找到对应的直播流创建新直播流 if (count($list['keys']) == 0) { //获取stream $hub->create($streamKey); } if ($data['type'] == 0) { $result = $this->updateShop($broadcast, $streamKey, $msg); if ($result == false) { return $this->sendResponse(trans('admin.operate_failed') . $msg); } } else { $result = $this->updateCurriculum($broadcast, $streamKey, $msg); if ($result == false) { return $this->sendResponse(trans('admin.operate_failed') . $msg); } } return $this->sendResponse(trans('admin.operate_succeeded'), 'succ', ['p_href' => $broadcast['p_href']]); } //更新商城直播间 public function updateShop($broadcast, $streamKey, &$msg = '') { //获取推流地址 $p_href = RTMPPublishURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey, 3600, $this->accessKey, $this->secretKey); //获取播放地址 $g_href = RTMPPlayURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey); //截图直播地址 $pic = SnapshotPlayURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey); //更新直播间状态 $u_broadcast = $broadcast->fill(['name' => $broadcast['name'], 'chatroom_status' => 0, 'p_href' => $p_href, 'g_href' => $g_href, 'pic' => $pic])->save(); if ($u_broadcast == false) { return $this->sendResponse(trans('admin.operate_failed') . '更新直播间出错'); } return true; }Apprentissage recommandé : "
Tutoriel vidéo PHP
"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!

L'article compare les modèles de base de données d'acide et de base, détaillant leurs caractéristiques et les cas d'utilisation appropriés. L'acide priorise l'intégrité et la cohérence des données, adaptées aux applications financières et de commerce électronique, tandis que Base se concentre sur la disponibilité et

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

L'article traite des meilleures pratiques pour la validation des entrées PHP pour améliorer la sécurité, en se concentrant sur des techniques telles que l'utilisation de fonctions intégrées, une approche de liste blanche et une validation côté serveur.

L'article traite des stratégies de mise en œuvre de la limitation du taux d'API en PHP, y compris des algorithmes comme un godet de jeton et un seau qui fuit, et en utilisant des bibliothèques comme Symfony / Rate-Limiter. Il couvre également la surveillance, l'ajustement dynamiquement des limites de taux et la main

L'article traite des avantages de l'utilisation de mot de passe_hash et de mot de passe_verify dans PHP pour sécuriser les mots de passe. L'argument principal est que ces fonctions améliorent la protection des mots de passe grâce à la génération automatique de sel, à de forts algorithmes de hachage et à

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

L'article traite des stratégies pour empêcher les attaques XSS en PHP, en se concentrant sur la désinfection des entrées, le codage de sortie et l'utilisation de bibliothèques et de cadres améliorant la sécurité.

L'article traite de l'utilisation des interfaces et des classes abstraites en PHP, en se concentrant sur le moment de l'utiliser. Les interfaces définissent un contrat sans mise en œuvre, adapté aux classes non apparentées et à l'héritage multiple. Les cours abstraits fournissent une fusion commune


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.