Node kajian NodeJS nota pengaturcaraan rangkaian_node.js
Node menyediakan banyak modul pengaturcaraan rangkaian
Node模块 | 协议 |
net | TCP |
dgram | UDP |
http | HTTP |
https | HTTPS |
Acara perkhidmatan TCP dibahagikan kepada dua kategori berikut
(1), Acara pelayan
Untuk pelayan yang dibuat melalui net.createServer(), ia ialah tika EventEmitter Terdapat jenis acara tersuai berikut:
mendengar: Dicetuskan selepas memanggil listen() untuk mengikat port atau Soket Domain, disingkatkan sebagai server.listen(port, listener), dihantar masuk melalui parameter kedua.
sambungan: Dicetuskan apabila setiap soket pelanggan bersambung ke pelayan Cara ringkas untuk menulisnya adalah melalui net.createServer(), dan parameter terakhir diluluskan.
tutup: Dicetuskan apabila pelayan ditutup Selepas memanggil server.close(), pelayan akan berhenti menerima sambungan soket baharu, tetapi mengekalkan sambungan sedia ada pada masa ini.
ralat: Peristiwa ini akan dicetuskan apabila pengecualian berlaku pada pelayan.
(2), Acara sambungan
Pelayan boleh mengekalkan sambungan dengan berbilang pelanggan pada masa yang sama, dan merupakan objek Strim biasa yang boleh ditulis dan boleh dibaca untuk setiap sambungan. Objek Stream boleh digunakan untuk komunikasi antara pelayan dan klien Ia boleh membaca data dari satu hujung dari hujung yang lain melalui peristiwa data, atau menghantar data dari satu hujung ke hujung yang lain melalui kaedah write().
data: Apabila satu hujung memanggil write() untuk menghantar data, hujung satu lagi akan mencetuskan peristiwa data dan data yang diluluskan oleh peristiwa itu ialah data yang dihantar oleh write()
tamat: Peristiwa ini akan dicetuskan apabila kedua-dua hujung sambungan menghantar data FIN.
sambung: Acara ini digunakan untuk klien dan dicetuskan apabila soket berjaya disambungkan ke pelayan.
drain: Apabila mana-mana hujung panggilan write() untuk menghantar data, hujung semasa mencetuskan acara ini.
ralat: Dihantar apabila pengecualian
tutup: Dicetuskan apabila soket tertutup sepenuhnya
tamat masa: Apabila sambungan tidak lagi aktif selepas tempoh masa tertentu, acara ini dicetuskan untuk memberitahu pengguna bahawa sambungan melahu.
TCP mempunyai strategi pengoptimuman tertentu untuk paket data kecil dalam rangkaian: Algoritma Nagle, yang dicetuskan hanya apabila data mencapai jumlah tertentu.
Perkhidmatan UDP
UDP dipanggil User Datagram Protocol, yang bukan perkhidmatan berorientasikan sambungan. UDP dalam Node hanyalah contoh EventEmitter, bukan tika Stream dan mempunyai acara tersuai berikut:
Mesej (1): Dicetuskan apabila soket UDP mendengar port kad rangkaian dan menerima mesej Data yang dibawa oleh pencetus ialah mesej Buffer objek dan maklumat alamat jauh.
(2) mendengar: Peristiwa ini dicetuskan apabila soket UDP mula mendengar.
(3) tutup: Peristiwa ini dicetuskan apabila kaedah close() dipanggil dan acara mesej tidak akan dicetuskan lagi. Jika anda perlu mencetuskan acara mesej sekali lagi, anda perlu mengikatnya semula.
Ralat (4): Dicetuskan apabila pengecualian berlaku Jika tidak dipantau, ia akan dilemparkan terus untuk menyebabkan proses keluar.
Perkhidmatan HTTP
Modul http dalam Node diwarisi daripada pelayan tcp (modul bersih) Ia boleh mengekalkan sambungan dengan berbilang pelanggan Kerana ia tidak mencipta benang untuk setiap sambungan dan mengekalkan penggunaan memori yang sangat rendah, ia boleh mencapai keselarasan yang tinggi. Perbezaan antara perkhidmatan HTTP dan perkhidmatan TCP ialah selepas keepalive didayakan, sesi TCP boleh digunakan untuk berbilang permintaan dan respons. Perkhidmatan TCP disediakan dalam unit sambungan, dan perkhidmatan HTTP disediakan dalam unit permintaan. Modul http merangkum proses dari sambungan ke permintaan.
Modul http mengabstrakkan bacaan dan penulisan soket yang digunakan untuk sambungan ke dalam objek ServerRequest dan ServerResponse, yang sepadan dengan operasi permintaan dan respons masing-masing.
(1) Permintaan HTTP
Untuk operasi baca pada sambungan TCP, modul http merangkumnya sebagai objek ServerRequest. Sebagai contoh, bahagian pengepala ialah req.method, req.url, req.headers dan bahagian data isi mesej diabstrakkan sebagai objek strim baca sahaja Jika logik perniagaan perlu membaca data dalam badan mesej, ia perlu melengkapkan aliran data sebelum ia boleh beroperasi.
(2) Respons HTTP
Respon HTTP merangkum operasi tulis sambungan asas dan boleh dianggap sebagai objek strim boleh tulis.
Kaedah maklumat pengepala mesej respons: kaedah res.setHeader() dan res.writeHeader(), anda boleh setHeader beberapa kali, tetapi anda mesti memanggil writeHeader untuk menulis sambungan untuk berkuat kuasa.
Sebahagian daripada kaedah isi mesej: kaedah res.write() dan res.end()
(3) acara pelayan HTTP
sambungan: Apabila klien mewujudkan sambungan TCP dengan pelayan, peristiwa sambungan dicetuskan
permintaan: Selepas mewujudkan sambungan TCP, lapisan bawah modul http mengabstrak permintaan HTTP dan respons HTTP daripada aliran data Apabila data permintaan dihantar ke pelayan, peristiwa itu dicetuskan selepas menghuraikan pengepala permintaan HTTP ; dalam res.end() Selepas itu, sambungan TCP tersedia untuk permintaan seterusnya.
tutup: Panggil kaedah pelayan.tutup untuk berhenti menerima sambungan baharu Peristiwa ini dicetuskan apabila semua sambungan sedia ada diputuskan.
semakTeruskan: Apabila sesetengah pelanggan menghantar data yang besar, mereka mula-mula menghantar permintaan dengan Jangkakan: 100-terus dalam pengepala ke pelayan, dan perkhidmatan mencetuskan acara ini;
sambung: Dicetuskan apabila pelanggan memulakan permintaan CONNECTnaik taraf: Apabila pelanggan meminta untuk menaik taraf protokol sambungan, ia perlu berunding dengan pelayan, dan pelanggan akan membawa medan Naik Taraf dalam pengepala permintaan
clientError: Pelanggan yang disambungkan menghantar ralat, dan apabila ralat dihantar ke pelayan, acara ini dicetuskan
(4) Pelanggan HTTP
Modul http menyediakan http.request(options, connect) untuk membina klien HTTP.
Klien HTTP adalah serupa dengan pelayan Dalam objek ClientRequest, acaranya dipanggil respons Apabila ClientRequest menghuraikan mesej respons, peristiwa respons dicetuskan sebaik sahaja pengepala respons dihuraikan dan objek respons ClientResponse. diluluskan untuk operasi. Mesej tindak balas seterusnya disediakan sebagai strim baca sahaja.
(5) acara klien HTTP
tindak balas: Peristiwa ini dicetuskan apabila klien yang sepadan dengan acara permintaan pelayan menerima respons selepas permintaan dikeluarkan.
soket: dicetuskan apabila sambungan yang diwujudkan dalam kumpulan sambungan asas diperuntukkan kepada objek permintaan semasa;
sambung: Apabila klien menghantar permintaan CONNECT ke pelayan, jika pelayan membalas dengan kod status 200, klien akan mencetuskan acara ini.naik taraf: Apabila klien menghantar permintaan Naik Taraf kepada pelayan, jika pelayan bertindak balas dengan status 101 Switching Protocols, klien akan mencetuskan acara ini.
teruskan: Selepas pelanggan menghantar pengepala Expect: 100-continue ke pelayan, ia cuba menghantar data yang lebih besar Jika pelayan membalas dengan status 100 continue, pelayan akan mencetuskan acara ini
Perkhidmatan WebSocket
WebSocket pertama kali muncul sebagai ciri penting HTML5 Berbanding dengan HTTP, ia mempunyai kelebihan berikut:(1) Pelanggan dan pelayan hanya mewujudkan satu sambungan TCP, jadi lebih sedikit sambungan boleh digunakan
(2) Pelayan WebSocket boleh menolak data kepada klien, yang jauh lebih fleksibel dan cekap daripada mod tindak balas permintaan HTTP
(3) Pengepala protokol yang lebih ringan, mengurangkan penghantaran data
Tiada perpustakaan WebSocket terbina dalam dalam Node, tetapi modul ws komuniti merangkumi pelaksanaan asas WebSocket seperti socket.io yang terkenal

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

C++ menyediakan set perpustakaan sumber terbuka yang kaya yang meliputi fungsi berikut: struktur dan algoritma data (Perpustakaan Templat Standard) berbilang benang, ungkapan biasa (Boost) antara muka pengguna grafik (Eigen) antara muka pengguna grafik (Qt) penglihatan komputer (OpenCV) pembelajaran mesin. (TensorFlow) Penyulitan (OpenSSL) Pemampatan data (zlib) Pengaturcaraan rangkaian (libcurl) Pengurusan pangkalan data (sqlite3)

Untuk menyambung ke pangkalan data MySQL, anda perlu mengikuti langkah berikut: Pasang pemacu mysql2. Gunakan mysql2.createConnection() untuk mencipta objek sambungan yang mengandungi alamat hos, port, nama pengguna, kata laluan dan nama pangkalan data. Gunakan connection.query() untuk melaksanakan pertanyaan. Akhir sekali gunakan connection.end() untuk menamatkan sambungan.

Pustaka standard C++ menyediakan fungsi untuk mengendalikan pertanyaan DNS dalam pengaturcaraan rangkaian: gethostbyname(): Cari maklumat hos berdasarkan nama hos. gethostbyaddr(): Cari maklumat hos berdasarkan alamat IP. dns_lookup(): Asynchronously menyelesaikan DNS.

Perbezaan utama antara Node.js dan Java ialah reka bentuk dan ciri: Didorong peristiwa vs. didorong benang: Node.js dipacu peristiwa dan Java dipacu benang. Satu-benang vs. berbilang benang: Node.js menggunakan gelung acara satu-benang dan Java menggunakan seni bina berbilang benang. Persekitaran masa jalan: Node.js berjalan pada enjin JavaScript V8, manakala Java berjalan pada JVM. Sintaks: Node.js menggunakan sintaks JavaScript, manakala Java menggunakan sintaks Java. Tujuan: Node.js sesuai untuk tugas intensif I/O, manakala Java sesuai untuk aplikasi perusahaan besar.

Langkah-langkah untuk menyambungkan MyCAT dalam Node.js: Pasang kebergantungan mycat-ts. Buat kolam sambungan, nyatakan hos, port, nama pengguna, kata laluan dan pangkalan data. Gunakan kaedah pertanyaan untuk melaksanakan pertanyaan SQL. Gunakan kaedah tutup untuk menutup kolam sambungan.

Fungsi C++ boleh mencapai keselamatan rangkaian dalam pengaturcaraan rangkaian Kaedah termasuk: 1. Menggunakan algoritma penyulitan (openssl) untuk menyulitkan komunikasi 2. Menggunakan tandatangan digital (cryptopp) untuk mengesahkan integriti data dan identiti pengirim ( htmlcxx) untuk menapis dan membersihkan input pengguna.

Node.js ialah persekitaran masa jalan JavaScript dan npm ialah pengurus pakejnya. Kedua-duanya bekerjasama untuk membolehkan pembangun menulis program sebelah pelayan dalam JavaScript, menggunakan modul pihak ketiga dan mengurus modul dengan mudah.

Node.js sesuai untuk jenis projek berikut: Aplikasi rangkaian dan pelayan Aplikasi dipacu acara Aplikasi masa nyata Aplikasi intensif data Alat dan skrip baris perintah Perkhidmatan mikro ringan
