Ketika saya mendengar tentang streaming untuk pertama kalinya, itu dalam konteks streaming langsung dengan webcam. Jadi, satu host menyiarkan konten video, dan host lainnya menerima konten video. Jadi, apakah streaming ini? Yah ... ya ... tapi streaming langsung adalah konsep konkret, dan saya pikir pertanyaannya mengacu pada konsep abstrak Streaming. Lihat https://en.wikipedia.org/wiki/Live_streaming
Jadi mari kita lanjutkan.
Video bukan satu-satunya sumber daya yang dapat dialirkan. Audio juga dapat di-stream. Jadi kita berbicara tentang Streaming media sekarang. Lihat https://en.wikipedia.org/wiki/Streaming_media . Audio dapat dikirim dari sumber ke target dengan berbagai cara. Jadi mari kita bandingkan beberapa metode pengiriman data satu sama lain.
Pengunduhan file klasik Pengunduhan file
klasik tidak terjadi dalam waktu nyata. Sebelum mengambil file untuk digunakan, Anda harus menunggu sampai unduhan selesai.
Unduhan
progresif Potongan unduhan progresif mengunduh data dari file media yang dialirkan ke buffer sementara. Data dalam buffer itu bisa diterapkan: data audio-video dalam buffer dapat dimainkan. Karena itu pengguna dapat menonton / mendengarkan file media streaming saat mengunduh. Fast-forwarding dan rewinding adalah mungkin, offcourse dengan buffer. Bagaimanapun, pengunduhan progresif bukanlah streaming langsung.
Streaming
Terjadi real-time, dan memotong data. Streaming diimplementasikan dalam siaran langsung. Klien yang mendengarkan siaran tidak bisa maju atau mundur cepat. Dalam video stream, data dibuang setelah pemutaran.
Server Streaming menyimpan koneksi 2 arah dengan kliennya, sementara Server Web menutup koneksi setelah respons server.
Audio dan video bukan satu-satunya hal yang dapat dialirkan. Mari kita lihat konsep stream dalam manual PHP.
stream adalah objek sumber daya yang menunjukkan perilaku yang dapat dialirkan. Yaitu, dapat dibaca dari atau ditulis secara linear, dan mungkin dapat fseek () ke lokasi sewenang-wenang dalam aliran. Tautan: https://www.php.net/manual/en/intro.stream.php
Dalam PHP, sumber daya adalah referensi ke sumber eksternal seperti file, koneksi database. Jadi dengan kata lain, stream adalah sumber yang dapat dibaca atau ditulis. Jadi, Jika Anda bekerja dengan fopen()
, maka Anda sudah bekerja dengan stream.
Contoh file teks yang mengalami Streaming:
// Let's say that cheese.txt is a file that contains this content:
// I like cheese, a lot! My favorite cheese brand is Leerdammer.
$fp = fopen('cheese.txt', 'r');
$str8 = fread($fp, 8); // read first 8 characters from stream.
fseek($fp, 21); // set position indicator from stream at the 21th position (0 = first position)
$str30 = fread($fp, 30); // read 30 characters from stream
echo $str8; // Output: I like c
echo $str30; // Output: My favorite cheese brand is L
File zip juga dapat di-stream. Selain itu, streaming tidak terbatas pada file. HTTP, FTP, koneksi SSH dan Input / Output dapat di-stream juga.
Apa yang dikatakan wikipedia tentang konsep Streaming?
Dalam ilmu komputer, aliran adalah urutan elemen data yang tersedia sepanjang waktu. Aliran dapat dianggap sebagai item pada sabuk konveyor yang diproses satu per satu daripada dalam jumlah besar.
Lihat: https://en.wikipedia.org/wiki/Stream_%28computing%29 .
Tautan Wikipedia ke ini: https://srfi.schemers.org/srfi-41/srfi-41.html
dan penulisnya mengatakan ini tentang stream:
Streaming, kadang-kadang disebut daftar malas, adalah struktur data berurutan yang mengandung unsur-unsur yang dihitung hanya berdasarkan permintaan. Stream adalah null atau berpasangan dengan stream di cdr-nya. Karena elemen stream dihitung hanya ketika diakses, stream dapat menjadi tak terbatas.
Jadi Stream sebenarnya adalah struktur data.
Kesimpulan saya: stream adalah sumber yang dapat berisi data yang dapat dibaca dari atau ditulis secara berurutan. Aliran tidak membaca semua yang berisi sumber sekaligus, ia membaca / menulis secara berurutan.
Tautan bermanfaat:
- http://www.slideshare.net/auroraeosrose/writing-and-using-php-streams-and-sockets-zendcon-2011 Memberikan presentasi yang sangat jelas
- https://www.sk89q.com/2010/04/introduction-to-php-streams/
- http://www.netlingo.com/word/stream-or-streaming.php
- http://www.brainbell.com/tutorials/php/Using_PHP_Streams.htm
- http://www.sitepoint.com/php-streaming-output-buffering-explained/
- http://php.net/manual/en/wrappers.php
- http://www.digidata-lb.com/streaming/Streaming_Proposal.pdf
- http://www.webopedia.com/TERM/S/streaming.html
- https://en.wikipedia.org/wiki/Stream_%28computing%29
- https://srfi.schemers.org/srfi-41/srfi-41.html