Kebanyakan pelaksanaan semasa aplikasi web masa nyata berkisar pada pengundian dan teknologi tolak sebelah pelayan yang lain, yang paling terkenal ialah Komet. Teknologi komet membolehkan pelayan untuk menolak data secara aktif kepada pelanggan secara tidak segerak.
Apabila menggunakan tinjauan pendapat, penyemak imbas menghantar permintaan HTTP secara berkala dan menerima respons serta-merta apabila menggunakan tinjauan panjang, penyemak imbas menghantar permintaan kepada pelayan, dan pelayan memastikan ia terbuka untuk satu tempoh masa; penyemak imbas menghantar permintaan HTTP penuh, tetapi pelayan menghantar dan menyimpan respons terbuka yang terus dikemas kini dan kekal terbuka selama-lamanya.
Tiga kaedah di atas akan melibatkan pengepala permintaan dan respons HTTP apabila menghantar data masa nyata, dan mengandungi sejumlah besar data pengepala tambahan dan tidak perlu, yang akan menyebabkan kelewatan penghantaran.
1. Tafsiran Soket Web HTML5
1. WebSocket berjabat tangan
Untuk mewujudkan komunikasi WebSocket, pelanggan dan pelayan menaik taraf protokol HTTP kepada protokol WebSocket semasa jabat tangan awal. Setelah sambungan diwujudkan, mesej WebSocket boleh dihantar berulang-alik antara klien dan pelayan dalam mod dupleks penuh.
Nota: Dalam rangkaian, setiap mesej bermula dengan 0x00 bait dan berakhir dengan 0xFF, dan data perantaraan menggunakan format pengekodan UTF-8.
2. Antara muka WebSocket
Selain takrifan protokol WebSocket, antara muka WebSocket untuk aplikasi JavaScript juga ditakrifkan.
Nota: Awalan ws:// dan wss:// masing-masing mewakili sambungan WebSocket dan sambungan WebSocket selamat.
2. HTML5 WebSockets API
Bahagian ini membincangkan cara menggunakan Soket Web HTML5
1. Semak sama ada penyemak imbas menyokongnya
Gunakan window.WebSocket untuk menentukan sama ada penyemak imbas menyokongnya.
2. Penggunaan asas API
a. Penciptaan objek WebSocket dan sambungan ke pelayan WebSocket
b. Tambahkan pendengar acara
WebSocket mengikut model pengaturcaraan tak segerak Selepas membuka soket, anda hanya perlu menunggu peristiwa berlaku tanpa mengundi pelayan secara aktif. Oleh itu, anda perlu menambah fungsi panggil balik untuk mendengar acara.
Objek WebSocket mempunyai tiga acara: buka, tutup dan mesej. Acara terbuka dicetuskan apabila sambungan diwujudkan, acara mesej dicetuskan apabila mesej diterima, dan acara tutup dicetuskan apabila sambungan WebSocket ditutup.
c. Hantar mesej
Apabila soket terbuka (iaitu, selepas memanggil pendengar onopen dan sebelum memanggil pendengar onclose), anda boleh menggunakan kaedah hantar untuk menghantar mesej.
ws.send("Hello World");
3. Contoh aplikasi HTML5 WebSockets
Bahagian ini akan menggabungkan antara muka Geolokasi yang diterangkan sebelum ini untuk mencipta aplikasi yang mengira jarak terus dalam halaman Web.
1. Tulis fail HTML
Pelayar anda tidak menyokong Geolokasi HTML5
Pelayar anda tidak menyokong Soket Web HTML5