İlk kez akış hakkında duyduğumda , bir web kamerasıyla canlı akış bağlamındaydı . Yani, bir ana bilgisayar video içeriği yayınlıyor ve diğer ana bilgisayar video içeriğini alıyor. Peki bu akış mı? Şey ... evet ... ama canlı bir akış somut bir kavram ve bence soru soyut Akış kavramına atıfta bulunuyor. Bkz. Https://en.wikipedia.org/wiki/Live_streaming
Hadi devam edelim.
Video, yayınlanabilen tek kaynak değildir. Ses akışı da yapılabilir. Şimdi medya akışından bahsediyoruz. Bkz. Https://en.wikipedia.org/wiki/Streaming_media . Ses kaynaktan hedefe çeşitli şekillerde iletilebilir. Öyleyse bazı veri dağıtım yöntemlerini birbiriyle karşılaştıralım.
Klasik dosya indirme
Klasik dosya indirme gerçek zamanlı olarak gerçekleşmez. Kullanılacak dosyayı almadan önce, indirme işleminin tamamlanmasını beklemeniz gerekir.
Aşamalı indirme
Aşamalı indirme parçaları, akışlı ortam dosyasından geçici bir arabelleğe veri indirir. Bu arabellekteki veriler kullanılabilir: arabellekteki ses-video verileri oynatılabilir. Bu nedenle kullanıcılar indirirken akışlı medya dosyasını izleyebilir / dinleyebilir. Hızlı iletme ve geri sarma mümkündür, arabellekle birlikte. Her neyse, aşamalı indirme canlı akış değildir.
Akış
Gerçek zamanlı olur ve verileri toplar. Akış, canlı yayınlarda uygulanır. Yayını dinleyen istemciler hızlı ileri veya geri sarma yapamazlar. Video akışlarında, veriler oynatıldıktan sonra atılır.
Bir Akış Sunucusu, istemcisiyle iki yönlü bir bağlantı sağlarken, bir Web Sunucusu bir sunucu yanıtından sonra bağlantıyı kapatır.
Ses ve video, yayınlanabilecek tek şey değildir. PHP kılavuzundaki akış kavramına bir göz atalım.
akış, akış davranışı gösteren bir kaynak nesnedir. Yani, doğrusal bir şekilde okunabilir veya doğrusal bir şekilde yazılabilir ve akış içindeki keyfi bir konuma fseek () olabilir. Bağlantı: https://www.php.net/manual/en/intro.stream.php
PHP'de bir kaynak, dosya, veritabanı bağlantısı gibi harici bir kaynağa referanstır. Başka bir deyişle, bir akış okunabilen veya yazılabilen bir kaynaktır. Yani, eğer fopen()
birlikte çalışsaydınız, zaten akışlarla çalışmışsınız demektir.
Akışa maruz kalan bir Metin dosyası örneği:
// 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
Zip dosyaları da yayınlanabilir. Bunun da ötesinde, akış yalnızca dosyalarla sınırlı değildir. HTTP, FTP, SSH bağlantıları ve Giriş / Çıkış da yayınlanabilir.
Vikipedi Akış kavramı hakkında ne diyor?
Bilgisayar biliminde, bir akış zaman içinde kullanıma sunulan bir dizi veri öğesidir. Bir akış, bir konveyör bandındaki nesnelerin büyük partiler yerine birer birer işlenmesi olarak düşünülebilir.
Bkz . Https://en.wikipedia.org/wiki/Stream_%28computing%29 .
Wikipedia buna bağlantı veriyor: https://srfi.schemers.org/srfi-41/srfi-41.html
ve yazarlar akışlar hakkında şunları söylüyor:
Bazen tembel listeler olarak adlandırılan akışlar, yalnızca istek üzerine hesaplanan öğeleri içeren sıralı bir veri yapısıdır. Bir akış ya boştur ya da cdr'sinde bir akış bulunan bir çifttir. Bir akışın elemanları yalnızca erişildiğinde hesaplandığından, akışlar sonsuz olabilir.
Dolayısıyla bir Akış aslında bir veri yapısıdır.
Sonucum: Akış, sıralı bir şekilde okunabilen veya bunlara yazılabilen veriler içeren bir kaynaktır. Bir akış kaynağın içerdiği her şeyi bir kerede okumaz, sırayla okur / yazar.
Yararlı bağlantılar:
- http://www.slideshare.net/auroraeosrose/writing-and-using-php-streams-and-sockets-zendcon-2011 Çok net bir sunum sağlar
- 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