Bagaimanakah WebSocket berfungsi?

WBOY
Lepaskan: 2024-02-18 16:48:07
asal
715 orang telah melayarinya

Bagaimanakah WebSocket berfungsi?

Tajuk: Analisis prinsip WebSocket dan contoh kod

Teks:
Dengan pembangunan Internet dan pengembangan berterusan senario aplikasi, model permintaan-tindak balas tradisional berdasarkan protokol HTTP secara beransur-ansur tidak dapat memenuhi realiti tinggi -keperluan masa. Dalam konteks ini, WebSocket muncul WebSocket ialah protokol dalam HTML5 yang boleh mewujudkan saluran komunikasi dua hala antara pelanggan dan pelayan untuk mencapai penghantaran data masa nyata.

Prinsip WebSocket:
WebSocket menggunakan protokol baharu Berbanding dengan HTTP, ia adalah kaedah "sambungan panjang", iaitu selepas sambungan diwujudkan, saluran komunikasi antara pelanggan dan pelayan akan kekal terbuka keperluan untuk permintaan dan respons HTTP yang kerap, yang boleh mengurangkan beban pada rangkaian dan meningkatkan prestasi dan kecekapan masa nyata.

Protokol WebSocket menggunakan protokol HTTP untuk mewujudkan sambungan, tetapi selepas sambungan berjaya diwujudkan, kedua-dua pihak menghantar data secara langsung tanpa menggunakan permintaan HTTP. Ia berdasarkan protokol TCP/IP dan menyokong komunikasi tak segerak Ia boleh memindahkan data dalam kedua-dua arah antara klien dan pelayan Pelayan boleh menolak data secara aktif kepada klien.

Proses komunikasi WebSocket adalah lebih kurang seperti berikut:

  1. Pelanggan menghantar permintaan HTTP kepada pelayan, meminta untuk menaik taraf sambungan ke protokol WebSocket.
  2. Selepas menerima permintaan, pelayan membalas dengan kod respons HTTP 101, menunjukkan bahawa peningkatan kepada protokol WebSocket berjaya.
  3. Selepas peningkatan sambungan berjaya, pelanggan dan pelayan telah mewujudkan saluran komunikasi dupleks penuh.
  4. Pelanggan dan pelayan boleh memindahkan data secara bebas melalui saluran ini Sama ada pelayan menolak data kepada pelanggan atau pelanggan menghantar data ke pelayan, semuanya boleh dilakukan dalam masa nyata.

Perlu diingatkan bahawa untuk memastikan keselamatan komunikasi, WebSocket boleh menyulitkan penghantaran data melalui algoritma penyulitan (seperti TLS).

Contoh kod WebSocket:
Berikut ialah contoh kod WebSocket yang mudah (menggunakan JavaScript):

// 创建WebSocket对象
var socket = new WebSocket("ws://example.com/socket");

// 连接成功时触发
socket.onopen = function() {
   console.log("WebSocket连接成功");

   // 向服务器发送数据
   socket.send("Hello, Server!");
};

// 接收到服务器返回的数据时触发
socket.onmessage = function(event) {
   console.log("接收到数据:" + event.data);

   // 向服务器发送数据
   socket.send("Hello, Server!");
};

// 连接关闭时触发
socket.onclose = function(event) {
   console.log("WebSocket连接关闭", event.code, event.reason);
};

// 发生错误时触发
socket.onerror = function(error) {
   console.log("WebSocket错误:" + error);
};
Salin selepas log masuk

Dalam contoh kod di atas, objek WebSocket dicipta dengan memanggil pembina WebSocket dan url pelayan dihantar masuk. Kemudian pantau status sambungan dan penerimaan data dengan mengikat peristiwa yang berkaitan.

Ringkasan:
WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP/IP Ia mencapai penghantaran data masa nyata antara pelanggan dan pelayan dengan mewujudkan sambungan yang panjang. Berbanding dengan protokol HTTP tradisional, WebSocket mempunyai kelebihan prestasi masa nyata yang tinggi, kecekapan tinggi dan penggunaan sumber yang berkurangan. Pelbagai aplikasi masa nyata boleh dilaksanakan dengan mudah menggunakan protokol WebSocket, seperti sembang masa nyata, kemas kini harga saham masa nyata, dsb.

Atas ialah kandungan terperinci Bagaimanakah WebSocket berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan