Apa yang Long-Polling, Websockets, Server-Sent Events (SSE) dan Komet?
Saya telah mencoba membaca beberapa artikel, tapi saya tidak begitu jelas pada konsep-konsep yang belum.
Apakah seseorang ingin mengambil gambar di jelaskan padaku apa teknologi ini adalah:
- Lama Polling
- Server-Sent Events
- Websockets
- Komet
Satu hal yang saya datang di setiap waktu, server membuat sambungan terbuka dan mendorong data ke klien. Bagaimana koneksi tetap terbuka, dan bagaimana klien mendapatkan didorong data? (Bagaimana klien menggunakan data, mungkin beberapa kode yang mungkin bisa membantu?)
Sekarang, yang mana yang harus saya gunakan untuk aplikasi real-time. Saya telah mendengar banyak tentang websockets (dengan soket.io [a node.js perpustakaan]) tapi mengapa tidak PHP?
997
4
Dalam contoh di bawah ini klien adalah browser dan server adalah server web hosting situs web.
Sebelum anda dapat memahami teknologi ini, anda harus memahami klasik HTTP web lalu lintas pertama.
Regular HTTP:
Ajax Polling:
Ajax Long-Polling:
HTML5 Server Sent Event (SSE) / EventSource:
HTML5 Websockets:
Komet:
Komet adalah kumpulan teknik-teknik sebelum HTML5 yang menggunakan streaming dan panjang-tempat pemungutan suara untuk mencapai aplikasi real-time. Baca lebih lanjut di wikipedia atau ini artikel.
Anda dapat menggunakan PHP dengan WebSockets, check out Ratchet.
Tieme menempatkan banyak upaya ke dalam jawaban yang sangat baik, tapi saya pikir inti dari OPs pertanyaannya adalah bagaimana teknologi ini berhubungan dengan PHP bukan bagaimana masing-masing karya teknologi.
PHP adalah bahasa yang paling sering digunakan dalam pengembangan web selain yang jelas client side html, css, dan javascript. Namun PHP memiliki 2 masalah utama ketika datang ke aplikasi real-time:
Perhatikan bahwa PHP memiliki ekstensi untuk memberikan event loop (seperti libevent) dan benang (seperti pthreads) di PHP userspace, tapi sangat, sangat, beberapa aplikasi penggunaan ini.
PHP 7 akan menjadi langkah besar untuk memperbaiki masalah ini juga, dan tampaknya sangat menjanjikan sebagai platform untuk aplikasi real-time.
Saya telah mencoba untuk membuat catatan tentang ini dan yang telah dikumpulkan dan contoh-contoh tertulis dari jawa perspektif.
HTTP untuk Pengembang Java
Reverse Ajax - gaya Lama
Async Penanganan pada sisi server
Reverse Ajax - gaya Baru
Server Sent Events
Menempatkan di sini untuk pengembang java yang melihat ke subjek yang sama.
Anda dapat dengan mudah menggunakan Node.JS dalam aplikasi web anda hanya untuk komunikasi real-time. Node.JS ini benar-benar kuat saat itu's tentang WebSockets. Oleh karena itu "PHP Pemberitahuan melalui Node.js" akan menjadi sebuah konsep besar.
Lihat contoh ini: Membuat Real-Time Aplikasi Chat dengan PHP dan Node.js