Dalam aplikasi web moden, komunikasi masa nyata telah menjadi keperluan asas. Sebagai protokol komunikasi baharu, WebSocket boleh memberikan kami penyelesaian komunikasi masa nyata dipacu peristiwa. Dalam Vue, kita boleh menggunakan WebSocket untuk mencapai komunikasi masa nyata dengan mudah.
Bermula dengan WebSocket
WebSocket ialah protokol komunikasi baharu yang membolehkan komunikasi masa nyata dipacu peristiwa. Tidak seperti protokol HTTP tradisional, WebSocket mengekalkan sambungan yang panjang antara klien dan pelayan, dan mesej boleh ditukar antara klien dan pelayan pada bila-bila masa, yang membolehkan kami melaksanakan aplikasi komunikasi masa nyata dengan mudah.
Ciri WebSocket ialah:
Menggunakan WebSocket dalam Vue
Kaedah menggunakan WebSocket dalam Vue untuk mencapai komunikasi masa nyata adalah seperti berikut:
Sebelum menggunakan WebSocket dalam Vue, kita perlu membuat objek WebSocket dalam Vue. Objek WebSocket boleh dibuat dengan mencipta contoh WebSocket(url) baharu.
WebSocket menyediakan pelbagai acara, seperti onopen, onmessage, onerror, onclose, dll. Apabila menggunakan WebSocket, kita perlu mendengar acara ini Sebagai contoh, acara onmessage boleh mendengar data yang ditolak oleh pelayan. Kami boleh menggunakan kaedah $emit Vue untuk menghantar mesej yang diterima ke komponen lain.
Kaedah menghantar mesej menggunakan WebSocket dalam Vue adalah sama seperti kaedah menghantar mesej dalam JavaScript biasa Anda hanya perlu menghantar mesej melalui kaedah WebSocket.send(data).
Apabila kita tidak perlu lagi menggunakan WebSocket, kita perlu menutup sambungan WebSocket. Dalam Vue, kita boleh menutup sambungan WebSocket melalui fungsi cangkuk yang dipasang apabila halaman dimusnahkan.
Merangkum komponen WebSocket dalam Vue
Kami boleh membungkus WebSocket ke dalam komponen Vue, yang membolehkan kami menggunakannya semula dalam berbilang komponen. Kami boleh menggunakan fungsi menyediakan dan menyuntik Vue untuk menyediakan objek WebSocket kepada semua komponen kanak-kanak.
Berikut ialah komponen WebSocket Vue yang ringkas:
<template> <div> </div> </template> <script> export default { data() { return { ws: null } }, provide() { return { ws: this.ws } }, mounted() { this.ws = new WebSocket('ws://example.com/ws') this.ws.onopen = () => { console.log('connected') } this.ws.onmessage = (e) => { this.$emit('message', e.data) } }, beforeUnmount() { this.ws.close() } } </script>
Ini ialah contoh komponen WebSocket Vue yang mudah Kami menyediakan objek WebSocket kepada semua sub-komponen, dan boleh menghantar data yang diterima ke komponen lain melalui kaedah $emit.
Kita boleh menyuntik objek WebSocket melalui fungsi inject dalam sub-komponen:
<script> export default { inject: ['ws'], mounted() { this.ws.send('hello world') } } </script>
Dalam sub-komponen kita boleh terus menggunakan kaedah ini.ws.send untuk menghantar mesej WebSocket.
Ringkasan
Menggunakan WebSocket untuk mencapai komunikasi masa nyata adalah sangat mudah dan ringkas, dan menggunakan WebSocket dalam Vue juga sangat mudah. Kami boleh merangkum WebSocket ke dalam komponen Vue dan merealisasikan perkongsian data antara berbilang komponen, yang boleh menjadikan pembangunan kami berfungsi dengan lebih cekap.
Atas ialah kandungan terperinci Petua untuk menggunakan WebSocket untuk mencapai komunikasi masa nyata dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!