PHP WebSocket 開発ガイド: ライブ ビデオ機能を実装する手順の分析
はじめに:
インターネット テクノロジの継続的な発展に伴い、ライブ ビデオは一部となってきました。人々の生活の不可欠な部分。ライブビデオ機能を実装する効果的な方法は、WebSocket テクノロジを使用することです。この記事では、PHPを使用してライブビデオブロードキャストの機能を実現するWebSocketを開発する方法を紹介します。
ステップ 1: WebSocket テクノロジを理解する
WebSocket は、TCP に基づく全二重通信プロトコルです。WebSocket プロトコルを使用すると、クライアントとサーバーの間に長時間の接続を確立し、リアルタイム通信を実現できます。 。従来の HTTP プロトコルと比較して、待ち時間が短く同時実行性が高いという利点があり、ライブ ビデオ ブロードキャストなどのリアルタイム アプリケーションに非常に適しています。
ステップ 2: WebSocket サーバーを構築する
WebSocket サーバーをセットアップする前に、PHP と対応する拡張機能がサーバーにインストールされていることを確認する必要があります。 Ratchet などのオープン ソース ライブラリの使用を選択できます。これにより、WebSocket サーバーの開発プロセスが大幅に簡素化されます。 Composer を使用してインストールします:
1 | composer require cboden /ratchet
|
ログイン後にコピー
次に、WebSocket サーバー スクリプトを作成できます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
require dirname(__DIR__) . '/vendor/autoload.php' ;
class VideoServer implements MessageComponentInterface
{
protected $clients ;
public function __construct()
{
$this ->clients = new SplObjectStorage();
}
public function onOpen(ConnectionInterface $conn )
{
$this ->clients->attach( $conn );
}
public function onMessage(ConnectionInterface $from , $msg )
{
foreach ( $this ->clients as $client ) {
if ( $client !== $from ) {
$client ->send( $msg );
}
}
}
public function onClose(ConnectionInterface $conn )
{
$this ->clients->detach( $conn );
}
public function onError(ConnectionInterface $conn , Exception $e )
{
$conn ->close();
}
}
$server = new RatchetApp( 'localhost' , 8080);
$server ->route( '/video' , new VideoServer(), [ '*' ]);
$server ->run();
|
ログイン後にコピー
このスクリプトは、「VideoServer」という名前の WebSocket サーバーを作成し、「MessageComponentInterface」インターフェイスを実装します。 「onOpen」、「onMessage」、「onClose」、「onError」などのメソッドを通じて、クライアント接続、メッセージ転送、接続切断と例外などを処理できます。
ステップ 3: フロントエンドの実装
フロントエンド HTML ファイルでは、JavaScript を使用してクライアント接続とビデオ ライブ ブロードキャスト機能を実装できます。まず、関連する JavaScript コードを HTML に導入する必要があります:
1 2 | < script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js" ></ script >
< script src = "https://cdn.jsdelivr.net/npm/@kurento/kurento-client" ></ script >
|
ログイン後にコピー
次に、JavaScript コードを記述します:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | $(document).ready( function () {
var WebSocket = window.WebSocket || window.MozWebSocket;
var socket = new WebSocket( 'ws://localhost:8080/video' );
socket.onopen = function () {
console.log( 'Connected to WebSocket server' );
};
socket.onmessage = function (message) {
var data = JSON.parse(message.data);
};
socket.onerror = function (error) {
console.log( 'WebSocket error: ' + error);
};
socket.onclose = function () {
console.log( 'WebSocket connection closed' );
};
function sendVideoData(data) {
socket.send(data);
}
navigator.mediaDevices.getUserMedia({ video: true }).then( function (stream) {
var videoElement = document.getElementById( 'video' );
videoElement.srcObject = stream;
var videoTrack = stream.getVideoTracks()[0];
var videoSender = socket.createVideoSender();
videoSender.send(videoTrack);
}). catch ( function (error) {
console.log( 'Error accessing media devices: ' + error);
});
});
|
ログイン後にコピー
このコードでは、最初に WebSocket オブジェクトを作成し、それをサーバーが接続を確立します。その後、WebSocket オブジェクトの関連メソッドを通じて接続、メッセージ、エラーを処理できます。
次に、getUserMedia
メソッドを使用してカメラ ビデオ ストリームを取得し、それを HTML ビデオ要素に割り当てて、リアルタイム ビデオを表示します。次に、WebSocket オブジェクトの createVideoSender
メソッドを使用してビデオ センダーを作成し、ビデオ データを送信します。
結論:
上記の 3 つの手順により、PHP を使用して WebSocket を開発し、フロントエンド JavaScript コードを通じてビデオ ライブ ブロードキャスト機能を実現できます。この記事が、皆さんが WebSocket の使い方を理解して使いこなし、ライブ ビデオ機能を実装するのに役立つことを願っています。
以上がPHP WebSocket 開発ガイド: ライブビデオ機能を実装する手順の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。