cari
Rumahhujung hadapan webtutorial jsBuat ruang sembang video masa nyata dengan WebRTC & Twilio

Create a Real-Time Video Chat Room with WebRTC & Twilio

Artikel ini mendapat manfaat daripada Kajian Peer oleh Wern Ancheta dan Tim Sevien. Terima kasih kepada pengulas rakan sebaya SitePoint untuk meningkatkan kandungan kami!

Membina artikel saya sebelumnya, "The Dawn of Webrtc," yang menunjukkan aplikasi gerai foto mudah, artikel ini membimbing anda melalui membuat bilik sembang video berfungsi menggunakan API Komunikasi Masa Nyata Web (WebRTC).

WebRTC memberi kuasa kepada pemaju web dan mudah alih untuk membina aplikasi video dan audio definisi tinggi dengan API yang mudah. Pelbagai industri, termasuk penjagaan kesihatan, pendidikan, perkhidmatan pelanggan, dan media sosial, memanfaatkan WebRTC untuk aplikasi generasi akan datang. Anda mungkin menggunakan WebRTC tanpa disedari melalui platform seperti Facebook Messenger, WhatsApp, dan Snapchat.

Titik pembelajaran utama:

    Mengintegrasikan video dan audio masa nyata ke dalam aplikasi anda menggunakan API video yang boleh diprogramkan Twilio, meningkatkan penglibatan pengguna.
  • Sediakan ruang sembang video dengan Twilio dan Firebase untuk Pengurusan Pengguna.
  • Pastikan keserasian dengan pelayar yang disokong oleh WEBRTC (Chrome, Firefox, Opera) dan melaksanakan penyulitan SSL untuk komunikasi yang selamat.
  • Gunakan kod PHP dan JavaScript yang disediakan untuk Pengesahan Pengguna, Jemputan Sembang, dan Pengurusan Sambungan.
  • Membangunkan aplikasi sembang video masa nyata yang mantap dengan kemas kini status pengguna dan keupayaan sambungan/pemotongan dinamik.

Streamlining Development dengan Twilio

WebRTC dan teknologi yang serupa merevolusikan komunikasi. Pemaju boleh dengan mudah mengintegrasikan ciri -ciri komunikasi yang dipertingkatkan ke dalam sebarang aplikasi. Sama seperti platform utama seperti Facebook, Snapchat, Tango, dan WhatsApp telah menggabungkan audio dan video secara langsung, begitu juga anda.

Proses ini mengejutkan mudah, cepat, dan kos efektif. Sifat sumber terbuka Google WebRTC menghapuskan yuran pelesenan. Walau bagaimanapun, menavigasi komponen WebRTC seperti Turn/Stun, Isyarat, dan MCU boleh mencabar.

Banyak penyedia PaaS menawarkan penyelesaian WebRTC. Berdasarkan pengalaman kami di Blacc Spot Media, kami mengesyorkan Twilio untuk keberkesanannya yang terbukti. Artikel ini memberi tumpuan kepada platform mereka.

Twilio Video: alat yang berkuasa

Twilio menawarkan suite alat komunikasi melalui API dan SDK yang mudah. Video yang boleh diprogramkan mereka membolehkan pengalaman video dan audio HD berbilang pihak dalam aplikasi web dan mudah alih. Twilio adalah pemimpin dalam ruang WebRTC, terus meningkatkan penawarannya. Peningkatan masa depan termasuk perkongsian skrin mudah alih dan keupayaan berbilang pihak yang lebih baik.

Membina ruang sembang

Demo ini memerlukan akaun Twilio (mendaftar untuk akaun percuma dan pilih "Video Programmable"). Anda perlukan:

Credential Description
Twilio Account SID Your main Twilio account identifier (found on your dashboard).
Twilio Video Config SID Enables video capabilities in the access token (generate one on your dashboard).
API Key Used for authentication (generate one on your dashboard).
API Secret Used for authentication (generate one on your dashboard).

Kami juga akan menggunakan Firebase untuk Pengurusan Pengguna. (Daftar untuk akaun percuma jika diperlukan). Selepas persediaan, anda boleh menggunakan demo ini ke pelayan.

Demo

Kod ini boleh didapati di GitHub, dan demo langsung dihoskan di Blacc Spot Media. Ingatlah bahawa WebRTC kini menyokong Google Chrome, Mozilla Firefox, dan Opera di desktop. Semak keserasian penyemak imbas di bolehkah saya menggunakan rtcpeerconnection?

Untuk penyebaran pelayan (Chrome 47 dan kemudian memerlukan SSL), gunakan mari enkripsi untuk sijil SSL percuma. Tutorial Ocean Digital boleh membantu dengan pemasangan.

kod php (token.php)

Skrip PHP ini mengendalikan pengesahan Twilio dan token.

// ADD TWILIO REQUIRED LIBRARIES
require_once('twilio/Services/Twilio.php');

// TWILIO CREDENTIALS
$TWILIO_ACCOUNT_SID = 'your account sid here';
$TWILIO_CONFIGURATION_SID = 'your configuration sid here';
$TWILIO_API_KEY = 'your API key here';
$TWILIO_API_SECRET = 'your API secret here';

// CREATE TWILIO TOKEN
$id = $_GET['id'];

$token = new Services_Twilio_AccessToken(
    $TWILIO_ACCOUNT_SID,
    $TWILIO_API_KEY,
    $TWILIO_API_SECRET,
    3600,
    $id
);

$grant = new Services_Twilio_Auth_ConversationsGrant();
$grant->setConfigurationProfileSid($TWILIO_CONFIGURATION_SID);
$token->addGrant($grant);

echo json_encode(array(
    'id'    => $id,
    'token' => $token->toJWT(),
));

kod html (index.html)

HTML ini menyediakan struktur asas untuk antara muka bilik sembang.

<div class="m-content">
    <h1 id="Quick-Start-Your-WebRTC-Project-with-Twilio">Quick Start Your WebRTC Project with Twilio</h1>
    <div class="start">
        <input type="text" id="id" name="id" value="" placeholder="Enter your name to join the chat" />
        <button id="start">Join Chat Room</button>
        <button id="disconnect" class="b-disconnect hide">Disconnect from Chat</button>
        <div class="status">
            <strong>MY STATUS:</strong> <span id="status">DISCONNECTED</span>
        </div>
    </div>
    <div class="local">
        <div id="lstream"></div>
    </div>
    <div class="remote">
        <div id="rstream"></div>
    </div>
    <div class="users-list"></div>
    <div class="logs"></div>
</div>
<🎜>
<🎜>
<🎜>
<🎜>
<🎜>

kod javascript (app.js)

JavaScript ini mengendalikan fungsi WebRTC, interaksi pengguna, dan integrasi Firebase. (Nota: Ini adalah versi yang sangat dipendekkan untuk keringkasan. Kod penuh boleh didapati di GitHub.)

// ... (WebRTC browser check, tlog function, etc.) ...

$('#start').on('click', function() {
  // ... (Ajax request to token.php, Twilio client setup) ...
});

// ... (clientConnected, firebaseConnect, addParticipant functions) ...

function startConversation() {
  // ... (Get user media, attach to #lstream) ...
}

// ... (conversationInvite, conversationStarted, participantConnected, participantDisconnected functions) ...

$('#disconnect').on('click', function() {
  // ... (Firebase disconnect, stop conversation, reset UI) ...
});

// ... (stopConversation function) ...

Kod JavaScript lengkap, termasuk fungsi yang ditinggalkan, boleh didapati di repositori GitHub yang dikaitkan dalam artikel asal.

Kesimpulan

WebRTC sedang mengubah komunikasi. Twilio dan Firebase memudahkan pembangunan aplikasi komunikasi masa nyata. Mula membina penyelesaian inovatif anda sendiri hari ini! Untuk lebih banyak tutorial dan sumber WebRTC, lawati WebRTC.Tutorial (apabila dilancarkan).

(bahagian Soalan Lazim dari input asal telah ditinggalkan kerana kekangan panjang, tetapi ia dapat dengan mudah diintegrasikan semula ke dalam output yang disemak ini.)

Atas ialah kandungan terperinci Buat ruang sembang video masa nyata dengan WebRTC & Twilio. 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
Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Demystifying JavaScript: Apa yang berlaku dan mengapa pentingDemystifying JavaScript: Apa yang berlaku dan mengapa pentingApr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Adakah Python atau JavaScript lebih baik?Adakah Python atau JavaScript lebih baik?Apr 06, 2025 am 12:14 AM

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.

Bagaimana saya memasang javascript?Bagaimana saya memasang javascript?Apr 05, 2025 am 12:16 AM

JavaScript tidak memerlukan pemasangan kerana ia sudah dibina dalam pelayar moden. Anda hanya memerlukan editor teks dan penyemak imbas untuk memulakan. 1) Dalam persekitaran penyemak imbas, jalankan dengan memasukkan fail HTML melalui tag. 2) Dalam persekitaran Node.js, selepas memuat turun dan memasang node.js, jalankan fail JavaScript melalui baris arahan.

Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Apr 04, 2025 pm 09:24 PM

Cara Menghantar Pemberitahuan Tugas di Quartz terlebih dahulu Apabila menggunakan pemasa kuarza untuk menjadualkan tugas, masa pelaksanaan tugas ditetapkan oleh ekspresi cron. Sekarang ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.