mari kita buang mereka bersama -sama untuk membezakan antara web, pekerja web dan pekerja perkhidmatan. Daripada masuk ke dalam butiran, melakukan penyelidikan mendalam dan mengalami setiap satu untuk diri sendiri-lebih seperti pembantu kecil supaya anda dapat mengumpulnya pada masa akan datang.
Rujukan cepat
WebSockets
Komunikasi berdasarkan peristiwa. Buat objek WebSocket dan sambungkan ke pelayan, dan mesej antara pelayan mencetuskan acara untuk menghantar dan menerimanya.
Ini bermakna apabila sambungan awal ditubuhkan, kami mempunyai komunikasi pelayan klien di mana sambungan dimulakan dan tetap aktif sehingga klien atau pelayan memilih untuk menamatkannya dengan menghantar dekat. Ini menjadikan WebSockets sesuai untuk aplikasi yang memerlukan komunikasi berterusan dan langsung antara pelanggan dan pelayan. Banyak definisi yang saya lihat senarai aplikasi sembang sebagai kes penggunaan biasa - anda menaip mesej, hantar ke pelayan, mencetuskan acara, pelayan bertindak balas dengan data tanpa berulang kali ping pelayan.
Pertimbangkan senario berikut: Anda sedang dalam perjalanan keluar dan memutuskan untuk membuka Peta Google. Anda mungkin sudah tahu bagaimana Peta Google berfungsi, tetapi jika anda tidak, ia akan mencari lokasi anda secara automatik sebaik sahaja anda menyambung ke aplikasi dan menjejaki di mana sahaja anda pergi. Ia menggunakan pemindahan data masa nyata untuk menjejaki lokasi anda selagi sambungan ini aktif. Ini adalah WebSocket yang menetapkan perbualan dua hala yang berterusan antara penyemak imbas dan pelayan untuk memastikan data terkini. Aplikasi sukan dengan skor masa nyata juga boleh menggunakan WebSockets dengan cara ini.
Perbezaan terbesar antara WebSockets dan pekerja web (dan pekerja perkhidmatan yang akan kita lihat kemudian) adalah bahawa mereka mempunyai akses langsung ke DOM. Walaupun pekerja web (dan pekerja perkhidmatan) dijalankan pada benang berasingan, WebSockets adalah sebahagian daripada benang utama, yang membolehkan mereka mengendalikan DOM.Terdapat alat dan perkhidmatan yang boleh membantu mewujudkan dan mengekalkan sambungan WebSocket, termasuk: SocketCluster, Asyncapi, Cowboy, Websocket King, Saluran, dan Gorilla WebSocket. MDN mempunyai senarai larian yang mengandungi perkhidmatan lain.
Pertimbangkan situasi di mana anda perlu melakukan banyak pengiraan kompleks sambil juga mengubah DOM. JavaScript adalah aplikasi tunggal yang menjalankan pelbagai skrip dan boleh memusnahkan antara muka pengguna yang anda cuba ubah dan pengiraan kompleks yang anda lakukan.
Ini adalah tempat pekerja web bermain.
Pekerja web membolehkan skrip berjalan dalam benang berasingan di latar belakang untuk mengelakkan skrip daripada menyekat satu sama lain pada benang utama. Ini menjadikan mereka sesuai untuk meningkatkan prestasi aplikasi yang memerlukan banyak operasi, kerana operasi ini dapat dilakukan pada benang berasingan di latar belakang tanpa menjejaskan penyerahan antara muka pengguna. Tetapi mereka tidak begitu baik untuk mengakses DOMS, kerana tidak seperti WebSockets, pekerja web berjalan di luar benang utama dalam benang sendiri.
Pekerja Web adalah objek yang melaksanakan fail skrip untuk melaksanakan tugas dengan menggunakan objek pekerja. Apabila kita bercakap tentang pekerja, mereka cenderung jatuh ke dalam salah satu daripada tiga jenis:
Terdapat beberapa perkara yang kita tidak dapat dikawal, dan salah satunya adalah sambungan rangkaian pengguna. Mana -mana rangkaian yang dihubungkan oleh pengguna itu sendiri. Kami hanya boleh melakukan yang terbaik untuk mengoptimumkan aplikasi kami supaya mereka mendapat prestasi terbaik pada sebarang sambungan yang berlaku untuk digunakan.
Pekerja Perkhidmatan adalah salah satu daripada beberapa perkara yang boleh kita lakukan untuk meningkatkan prestasi aplikasi kami secara beransur -ansur. Pekerja perkhidmatan terletak di antara aplikasi, penyemak imbas, dan pelayan, menyediakan sambungan berulir yang selamat dan berasingan untuk dijalankan di latar belakang, terima kasih - anda meneka - pekerja web. Seperti yang kita pelajari di bahagian sebelumnya, pekerja perkhidmatan adalah salah satu daripada tiga jenis pekerja web.
Jadi mengapa anda memerlukan pekerja perkhidmatan yang terletak di antara aplikasi anda dan penyemak imbas pengguna? Begitu juga, kita tidak dapat mengawal sambungan rangkaian pengguna. Katakan sambungan itu terganggu kerana beberapa sebab yang tidak diketahui. Ini akan mengganggu komunikasi antara penyemak imbas dan pelayan, menghalang data daripada dilepaskan. Pekerja perkhidmatan tetap bersambung dan bertindak sebagai proksi tak segerak yang memintas permintaan dan melakukan tugas -bahkan setelah sambungan rangkaian hilang.
Ini adalah daya penggerak utama untuk apa yang biasa dipanggil "luar talian pertama" pembangunan. Kami boleh menyimpan aset dalam cache tempatan dan bukannya rangkaian, memberikan maklumat kritikal jika pengguna berada di luar talian, kandungan prefetch supaya pengguna boleh menggunakan apabila diperlukan, dan memberikan sandaran kepada ralat rangkaian. Mereka benar -benar tidak segerak, tetapi tidak seperti WebSockets, mereka tidak dapat mengakses DOM kerana mereka berjalan pada benang mereka sendiri.
Satu lagi perkara penting mengenai pekerja perkhidmatan ialah mereka memintas setiap permintaan dan tindak balas dari permohonan anda. Oleh itu, mereka mempunyai risiko keselamatan, dan terutamanya mereka mengikuti strategi homolog. Oleh itu, ini bermakna pekerja perkhidmatan tidak boleh dijalankan dari CDN atau perkhidmatan pihak ketiga. Mereka juga memerlukan sambungan HTTPS yang selamat, yang bermaksud anda memerlukan sijil SSL untuk menjalankannya.
Ini adalah penjelasan yang sangat baik tentang perbezaan (dan persamaan) antara WebSockets, pekerja web, dan pekerja perkhidmatan. Sekali lagi, terma dan konsep adalah cukup sama bahawa seseorang boleh dikelirukan dengan yang lain, tetapi diharapkan ini akan memberi anda pemahaman yang lebih baik tentang cara membezakannya.
kita mulakan dengan jadual rujukan cepat. Ini adalah sama, tetapi sedikit berkembang untuk perbandingan yang lebih terperinci. (Borang harus dimasukkan di sini, dan kandungan borang harus ditulis semula mengikut kandungan bentuk asal untuk mengekalkan niat asal)
Atas ialah kandungan terperinci Perbezaan antara soket web, pekerja web, dan pekerja perkhidmatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!