Rumah >rangka kerja php >Workerman >Bina aplikasi penstriman audio yang cekap menggunakan Webman

Bina aplikasi penstriman audio yang cekap menggunakan Webman

PHPz
PHPzasal
2023-08-12 21:24:241861semak imbas

Bina aplikasi penstriman audio yang cekap menggunakan Webman

Bina aplikasi penstriman audio yang cekap menggunakan Webmen

Dengan populariti Internet dan peningkatan lebar jalur, aplikasi penstriman audio menjadi semakin popular. Banyak syarikat dan individu sedang membangun dan menyediakan pelbagai perkhidmatan penstriman audio, seperti muzik, podcast, radio dalam talian, dsb. Apabila membina aplikasi ini, kita perlu mempertimbangkan faktor seperti pengalaman pengguna, prestasi dan keselamatan. Artikel ini menerangkan cara menggunakan Webmen untuk membina aplikasi penstriman audio yang cekap, bersama-sama dengan beberapa contoh kod.

Webmen ialah rangka kerja web berasaskan Node.js yang menyediakan set alat dan perpustakaan yang berkuasa untuk membina aplikasi web yang cekap. Ia mengendalikan permintaan pelanggan secara tak segerak dan tidak menyekat dan boleh mengendalikan sejumlah besar sambungan serentak dengan berkesan. Ini sangat penting untuk aplikasi penstriman audio, yang perlu menghantar dan memproses sejumlah besar data audio dalam masa nyata.

Pertama, kita perlu memasang Node.js dan Webmen. Memasang Node.js adalah sangat mudah, cuma muat turun pakej pemasangan yang sesuai untuk sistem pengendalian anda dari tapak web rasmi dan ikut arahan untuk memasangnya. Selepas pemasangan selesai, kita boleh menggunakan npm (Pengurus Pakej Node) untuk memasang Webmen. Jalankan arahan berikut dalam terminal atau baris arahan untuk memasang Webmen:

npm install webmen

Setelah pemasangan selesai, kita boleh mencipta aplikasi Webmen baharu. Jalankan arahan berikut dalam terminal atau baris arahan:

webmen create myapp
cd myapp

Ini akan mencipta aplikasi Webmen baharu bernama myapp dalam direktori semasa dan masukkan direktori tersebut.

Seterusnya, kita perlu membuat laluan untuk mengendalikan permintaan penstriman audio. Cipta fail baharu dalam direktori myapp, namakannya audio.js dan tampal kod berikut ke dalam fail:

const webmen = require('webmen');
const fs = require('fs');

exports.stream = function (req, res) {
    const filename = 'path_to_audio_file'; // 替换为音频文件的路径
    const stats = fs.statSync(filename);
    const range = req.headers.range;
    const fileSize = stats.size;
    const chunkSize = 10 ** 6; // 每个数据块的大小为1MB
    const start = Number(range.replace(/D/g, ''));
    const end = Math.min(start + chunkSize, fileSize - 1);
    const contentLength = end - start + 1;
    const headers = {
        'Content-Range': `bytes ${start}-${end}/${fileSize}`,
        'Accept-Ranges': 'bytes',
        'Content-Length': contentLength,
        'Content-Type': 'audio/mpeg',
    };

    res.writeHead(206, headers);

    const stream = fs.createReadStream(filename, { start, end });

    stream.on('open', function () {
        stream.pipe(res);
    });

    stream.on('error', function (err) {
        res.end(err);
    });
};

Laluan ini mengendalikan permintaan penstriman audio. Ia mendapat parameter julat daripada pengepala permintaan dan menggunakannya untuk menghantar data audio dalam ketulan. Ia kemudian menggunakan modul fs untuk membaca fail audio dan menstrim ketulan data kepada pelanggan. Anda perlu menggantikan path_to_audio_file dengan laluan sebenar fail audio. path_to_audio_file为音频文件的真实路径。

现在,我们需要在应用程序中注册这个路由。在myapp目录下打开app.js文件,并将以下代码添加到文件的底部:

const audio = require('./audio');

app.get('/stream', audio.stream);

这样,我们就成功地将路由注册到了我们的应用程序中。我们可以通过向http://localhost:3000/stream发起请求来测试这个路由。

最后,我们需要启动应用程序。在终端或命令行中运行以下命令:

npm start

这将会启动应用程序,并将监听在3000端口。现在,我们可以使用任何支持音频流媒体的播放器来访问http://localhost:3000/stream

Kini, kita perlu mendaftar laluan ini dalam aplikasi. Buka fail app.js dalam direktori myapp dan tambahkan kod berikut pada bahagian bawah fail:

rrreee

Dengan cara ini, kami telah berjaya mendaftarkan laluan ke dalam aplikasi kami. Kami boleh menguji laluan ini dengan membuat permintaan kepada http://localhost:3000/stream.

Akhir sekali, kami perlu melancarkan aplikasi. Jalankan arahan berikut dalam terminal atau baris arahan:
    rrreee
  • Ini akan memulakan aplikasi dan ia akan mendengar pada port 3000. Kami kini boleh mengakses http://localhost:3000/stream menggunakan mana-mana pemain yang menyokong penstriman audio dan audio harus dimainkan dengan betul.
  • Di atas adalah langkah-langkah untuk membina aplikasi penstriman audio yang cekap menggunakan Webmen. Dengan menggunakan ciri tak segerak dan tidak menyekat Webmen, kami boleh mengendalikan sejumlah besar sambungan serentak dengan cekap dan menyediakan perkhidmatan penstriman audio berkualiti tinggi. Harap artikel ini membantu anda membina aplikasi penstriman audio!
Rujukan: 🎜🎜🎜Dokumentasi rasmi Webmen: https://webmen.io 🎜🎜Tapak web rasmi Node.js: https://nodejs.org🎜🎜

Atas ialah kandungan terperinci Bina aplikasi penstriman audio yang cekap menggunakan Webman. 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