Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Adakah socketio perlu digunakan dalam nod?

Adakah socketio perlu digunakan dalam nod?

WBOY
WBOYasal
2022-07-06 17:19:381532semak imbas

Socketio mesti digunakan dalam nod; socketio ialah perpustakaan nodejs untuk merangkum beberapa fungsi dan bergantung pada beberapa API nodejs, jadi ia hanya boleh digunakan dalam nodejs juga pada klien sisi. Teknologi pertukaran data komunikasi dua hala yang ditubuhkan antara pelayan dan pelayan menggunakan EngineIO di bahagian bawah.

Adakah socketio perlu digunakan dalam nod?

Persekitaran pengendalian artikel ini: sistem Windows 10, nodejs versi 16, komputer Dell G3.

Socketio mesti digunakan dalam nod

Socketio ialah perpustakaan nodejs yang lain yang menggunakan fungsi nodejs untuk merangkum beberapa fungsi untuk anda gunakan. jadi ia hanya boleh Digunakan di bawah nodejs.

SocketIO ialah teknologi pertukaran data komunikasi dua hala yang ditubuhkan antara pelanggan dan pelayan, menggunakan EngineIO di bahagian bawah. Pelanggan SocketIO menggunakan Engine.IO-Client, dan pelayan menggunakan Engine.IO.

Pengetahuan lanjutan

Cara SocketIO berfungsi

Apabila pelayar cuba mewujudkan SocketIO, SocketIO mula-mula menggunakan xhr-polling Create tinjauan yang panjang. Sebaik sahaja pengundian panjang diwujudkan, ia akan dinaik taraf kepada sambungan WebSocket.

Lapisan bawah SocketIO dilaksanakan menggunakan perpustakaan EngineIO Pustaka ini menggunakan WebSocket dan XMLHttprequest untuk merangkum protokol Socketnya sendiri (sementara dipanggil EIO Socket). Soket EIO yang lengkap termasuk berbilang sambungan XHR dan WebSocket

Pelanggan

Soket EIO melepasi jabat tangan XHR (XMLHttprequest). Bahagian hadapan menghantar XHR untuk memberitahu pelayan bahawa saya ingin memulakan tinjauan panjang XHR. Data yang dikembalikan oleh bahagian belakang termasuk bendera terbuka (diwakili oleh nombor 0), serta medan sisi dan peningkatan, selang ping dan tamat masa ping.

0{
“sid”: “8b7ab1ae-fbcf-4d23-8192-3c14a2a90721”,
“upgrades”: [
“websocket”
],
“pingInterval”: 10000,
“pingTimeout”: 60000
}

sid ialah ID sesi Soket EIO ini Kerana satu Soket EIO mengandungi berbilang permintaan, dan bahagian belakang akan bersambung ke berbilang Soket EIO pada masa yang sama, sid adalah bersamaan dengan ID SESI.

Satu lagi peningkatan medan, biasanya [‘websocket’], menunjukkan bahawa kaedah sambungan boleh dinaik taraf daripada tinjauan panjang kepada WebSocket.

Hujung hadapan memulakan tinjauan panjang XHR apabila menghantar XHR pertama Jika terdapat keperluan untuk menghantar dan menerima data pada masa ini, ia dilaksanakan melalui tinjauan panjang. Pengundian panjang yang dipanggil bermaksud bahawa bahagian hadapan menghantar permintaan, dan pelayan menunggu sehingga ada data yang akan dikembalikan sebelum membalas dengan segera menghantar permintaan seterusnya selepas menerima respons. Ini membolehkan komunikasi dua hala.

Selepas bahagian hadapan menerima peningkatan jabat tangan, EIO akan mengesan sama ada penyemak imbas menyokong WebSocket Jika ia menyokongnya, ia akan memulakan sambungan WebSocket, dan kemudian menghantar sekeping data dengan kandungan probe dan taip. ping ke pelayan melalui WebSocket ini. Jika pelayan mengembalikan data dengan kandungan probe dan jenis pong pada masa ini, bahagian hadapan akan menghentikan pengundian panjang HTTP yang telah ditetapkan sebelum ini, dan kemudian hanya menggunakan saluran WebSocket untuk menghantar dan menerima data

Semasa Kitaran hayat Soket EIO, Ia akan melakukan ping - pong sekali-sekala untuk menguji sama ada rangkaian itu normal.

Adakah socketio perlu digunakan dalam nod?

Ini ialah struktur bingkai WebSocket, hijau menghantar dan putih menerima. Nombor sebelumnya ialah jenis paket, 2 ialah ping, 3 ialah pong, 42 ialah mesej

Pembelajaran yang disyorkan: "tutorial video nodejs"

Atas ialah kandungan terperinci Adakah socketio perlu digunakan dalam nod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Bolehkah nod diturunkan?Artikel seterusnya:Bolehkah nod diturunkan?