Pertanyaan HTML 5 Websockets akan menggantikan Comet?


Sepertinya Websockets di HTML 5 akan menjadi standar baru untuk server push.

Apakah itu berarti server push hack yang disebut Comet akan menjadi usang?

Apakah ada alasan mengapa saya harus belajar bagaimana menerapkan komet ketika Websockets segera (1-2 tahun) akan tersedia di semua browser utama?

Maka saya bisa menggunakan Beaconpush atau Pusher bukannya sampai saat itu kan?


32
2017-08-08 23:53


asal


Jawaban:


Apakah itu berarti server push hack yang disebut Comet akan menjadi usang?

WebSockets mampu menggantikan Comet, AJAX, Long Polling, dan semua peretasan untuk mengatasi masalah ketika browser web tidak dapat membuka soket sederhana untuk komunikasi dua arah dengan server.

Apakah ada alasan mengapa saya harus belajar bagaimana menerapkan komet ketika WebSocket akan segera tersedia di semua browser utama?

Itu tergantung apa artinya "segera" bagi Anda. Tidak ada versi Internet Explorer (pra IE 9) yang mendukung API WebSockets, misalnya.


MEMPERBARUI: 

Ini tidak dimaksudkan sebagai jawaban menyeluruh. Lihat jawaban lainnya, dan @ jvenema khususnya, untuk wawasan lebih jauh ke topik ini.


12
2017-08-09 00:00



Ada 2 bagian untuk teka-teki ini:

T: Akankah bagian sisi klien dari "komet" diperlukan?

A: Ya. Bahkan dalam 2 tahun ke depan, Anda tidak akan melihat dukungan penuh untuk WebSockets di peramban "utama". IE8 misalnya tidak memiliki dukungan untuk itu, begitu juga versi FireFox saat ini. Mengingat IE6 dirilis pada tahun 2001, dan masih ada sampai sekarang, saya tidak melihat WebSockets sebagai pengganti komet sepenuhnya dalam waktu dekat.

T: Akankah bagian sisi server dari "komet" diperlukan?

A: Ya. Server komet dirancang untuk menangani koneksi HTTP yang berumur panjang, di mana server web "khas" tidak. Bahkan jika sisi klien mendukung WebSockets, sisi server masih perlu dirancang untuk menangani beban.

Selain itu, seperti "gustavogb" yang disebutkan, setidaknya saat ini WebSockets tidak didukung dengan benar dalam banyak HTTP Proxies, jadi hingga semuanya diperbarui juga, kita masih memerlukan semacam mekanisme fallback.

Singkatnya: komet, seperti yang ada saat ini, tidak akan hilang dalam waktu dekat.

Sebagai catatan tambahan: versi WebSockets yang saat ini diterapkan di Chrome dan Safari adalah dua draf yang berbeda, dan bekerja pada draf "saat ini" masih dalam pengembangan yang sangat berat, jadi saya bahkan tidak percaya itu realistis untuk mengatakan bahwa Dukungan WebSockets berfungsi saat ini. Sebagai rasa ingin tahu atau untuk belajar, pasti, tetapi tidak sebagai spec nyata, setidaknya belum.

[Perbarui, 2/23/11]

Versi Safari yang saat ini sedang berjalan memiliki implementasi yang salah (tidak mengirim header yang tepat), Firefox 4 baru saja menghentikan WebSockets, sehingga tidak akan dikirimkan, dan IE9 juga tidak terlihat bagus. Sepertinya Chrome adalah satu-satunya yang memiliki versi draf yang berfungsi dan aktif, sehingga WebSockets masih memiliki jalan panjang.


17
2017-08-11 21:39



Pertimbangkan untuk menggunakan perpustakaan / kerangka soket web yang kembali ke komet tanpa adanya dukungan peramban.

Check out dari Orbited dan Hookbox.


3
2017-08-09 14:02



Dalam jangka menengah websockets tidak akan menggantikan solusi komet bukan hanya karena kurangnya dukungan browser tetapi juga karena HTTP Proxies. Hingga sebagian besar HTTP Proxy akan diperbarui untuk mendukung koneksi websockets, pengembang web harus menerapkan solusi alternatif berdasarkan teknik komet untuk bekerja dalam jaringan "dilindungi" dengan proxy semacam ini.

Dalam websockets pendek / menengah hanya akan menjadi sebuah optimasi untuk digunakan ketika tersedia, tetapi Anda masih perlu mengimplementasikan polling panjang (komet) untuk mengandalkan kapan websockets tidak tersedia jika Anda perlu membuat situs web Anda dapat diakses untuk banyak pelanggan dengan jaringan / browser yang tidak di bawah kendali Anda.

Semoga ini akan diabstraksikan oleh kerangka kerja javascript dan akan transparan untuk pengembang web.


3
2017-08-09 00:11



Ya, karena "segera" adalah istilah yang sangat licin. Banyak toko web masih harus mendukung IE6.

Tidak, karena ruam kerangka kerja komet dan server telah muncul dalam waktu belakangan ini segera membuatnya sangat tidak perlu bagi Anda untuk mendapatkan tangan Anda kotor di ruang bawah tanah.

Ya karena "segera"Adalah istilah yang sangat licin ...


2
2017-08-08 23:54



Piagam untuk [kelompok kerja] kelompok kerja yang ditugaskan dengan websockets, BiDirectional atau Server-Initiated HTTP (hybi):

Deskripsi Kelompok Kerja

HTTP paling sering digunakan sebagai protokol permintaan / tanggapan, memimpin   kepada klien yang melakukan polling untuk data baru, atau pengguna menekan tombol refresh   browser mereka. Aplikasi web terbaru menemukan cara untuk berkomunikasi   dengan server web secara realtime, mendorong data dari sisi server ke server   klien segera setelah tersedia. Namun, aplikasi ini di   saat ini hanya dapat menggunakan berbagai mekanisme HTTP (misalnya polling panjang   permintaan) untuk berkomunikasi dengan server web secara langsung.

Kelompok kerja Hypertext-Bidirectional (HyBi) akan mencari   standarisasi satu pendekatan untuk mempertahankan dua arah   komunikasi antara klien HTTP, server, dan menengah   entitas, yang akan memberikan efisiensi lebih dibandingkan dengan saat ini   penggunaan permintaan gantung.

HTTP masih memiliki peran untuk dimainkan; ini adalah sistem berorientasi pesan fleksibel. websockets dikembangkan untuk menyediakan bidirectionality dan menghindari masalah polling yang panjang sekaligus. [itu melakukan ini dengan baik]. tapi lebih sederhana dari http. dan ada banyak hal yang berguna tentang http. pasti akan ada kemajuan lanjutan yang memperkaya komunikasi dua arah http, baik itu komet atau teknologi dorong lainnya. usaha saya sendiri yang rendah hati adalah [http://github.com/rektide/pipe-layer].


0
2017-09-23 23:41