Adakah ruang sembang nodejs mudah ditulis?
Bilik Sembang Node.js: Langkah demi Langkah
Bilik Sembang ialah aplikasi yang sangat berguna dari segi interaksi masa nyata dan pengalaman pengguna. Dalam teknologi pembangunan web moden, menggunakan Node.js boleh membina ruang sembang masa nyata yang cekap, dengan hasil yang cemerlang. Artikel ini akan menerangkan pelaksanaan ruang sembang Node.js, terokai sebab ia begitu biasa dan cara membinanya.
Kami memerlukan bahasa pengaturcaraan yang boleh digunakan oleh pelayan dan pelanggan, dalam kes ini kami menganggap Node.js. Node.js mempunyai banyak kelebihan berbanding bahasa belakang lain seperti PHP atau Java, yang paling penting ialah ia direka bentuk untuk dipacu peristiwa. Ini menjadikannya lebih baik dalam mengendalikan sejumlah besar sambungan serentak dan membolehkan pemprosesan data pantas dalam aplikasi masa nyata.
Prasyarat
Langkah pertama dalam membina ruang sembang Node.js ialah memasang Node.js dan npm (pengurus pakej Node.js). Buka terminal dan masukkan arahan berikut:
$ sudo apt-get update $ sudo apt-get install nodejs $ sudo apt-get install npm
Kami akan menggunakan npm untuk memasang 3 modul berikut:
• socket.io: Menjadikan soket web lebih mudah digunakan.
• ekspres: untuk pembangunan aplikasi web.
• nodemon: Digunakan untuk memantau aplikasi dan memulakannya semula apabila perubahan berlaku.
Jalankan arahan berikut untuk memasangnya:
$ sudo npm install socket.io express nodemon
Kami kini bersedia untuk mula membina bilik sembang menggunakan Node.js.
1. Cipta Pelayan Web
Langkah pertama dalam ruang sembang Node.js ialah mencipta Pelayan Web untuk mendengar pada port yang ditentukan, kita boleh melakukan ini:
const app = require('express')(); const server = require('http').Server(app); const io = require('socket.io')(server); app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); server.listen(3000, () => { console.log('listening on *:3000'); });
Kod mula-mula menggunakan modul express
untuk mencipta pelayan HTTP, kemudian menggunakan modul socket.io
untuk mencipta pelayan soket web, dan akhirnya meminta pelayan mendengar pada port 3000 untuk dijalankan pada penyemak imbas. Kaedah app.get() digunakan untuk memaparkan fail index.html dalam penyemak imbas.
2. Buka sambungan pada klien
Pelayar bersambung ke soket Web pada pelayan, selepas dua langkah:
a
Tambahkan dua baris kod berikut dalam fail HTML untuk boleh merujuk socket.io-client
:
<script src="/socket.io/socket.io.js"></script> <script src="/main.js"></script>
b Buka sambungan pada klien
Buka sambungan WebSocket , Supaya pelanggan boleh menyambung ke soket pada pelayan. Kodnya adalah seperti berikut:
const socket = io();
Kami akan menyambung ke pelayan Node.js dan mengembalikan WebSocket yang belum dimuktamadkan supaya kami boleh mula menghantar dan menerima mesej melalui soket.
- Melaksanakan penghantaran mesej ke bilik tertentu
Kini pelayan kami bersedia untuk menerima sambungan antara terminal. Seterusnya, kita akan melihat cara menghantar mesej ke sambungan bilik tertentu. Dalam kod
socket.on('join', (room) => { socket.join(room); }); socket.on('message', (msg, room) => { socket.to(room).emit('message', msg); });
, kami menggunakan kaedah .join()
soket pada pelayan untuk menyertai bilik yang ditentukan. Pelayan akan melakukan ini apabila pelanggan menghantar mesej 'join'. Pelayan kemudiannya menyiarkan mesej kepada semua pengguna dalam bilik sasaran menggunakan kaedah .to()
.
Ini boleh dilakukan dengan arahan berikut untuk menghantar mesej:
socket.emit('message', 'Hello World', 'room1');
- Sembang Kumpulan
Langkah seterusnya ialah menambah sembang kumpulan ke pelayan. Cara kami mencapainya ialah:
const users = {}; socket.on('new-connection', () => { users[socket.id] = { name: `User ${Math.floor(Math.random() * 1000)}` }; socket.broadcast.emit('user-connected', users[socket.id]); }); socket.on('chat-message', (msg) => { socket.broadcast.emit('chat-message', { message: msg, name: users[socket.id].name }); }); socket.on('disconnect', () => { socket.broadcast.emit('user-disconnected', users[socket.id]); delete users[socket.id]; });
Mula-mula, kami mencipta pembolehubah yang dipanggil "pengguna" yang akan menyimpan setiap pengguna yang disambungkan ke pelayan. Apabila pengguna menyambung ke pelayan, objek yang sepadan dengannya disimpan dalam pembolehubah "pengguna" dan mesej "bersambung pengguna" disiarkan kepada semua pengguna lain, yang menyampaikan pembolehubah "pengguna" dengan pengguna baharu.
Apabila pengguna menghantar mesej ke pelayan, mesej ini disiarkan kepada semua pengguna lain, termasuk pengirim asal. Apabila pengguna memutuskan sambungan, acara "diputuskan pengguna" disiarkan dan pengguna yang sepadan dipadamkan daripada pembolehubah "pengguna".
Kami kini bersedia untuk menggunakan ruang sembang Node.js. Kami boleh melihat ruang sembang dalam penyemak imbas tempatan kami dengan menjalankan arahan berikut:
$ nodemon index.js
Kesimpulan
Dalam artikel ini, kami telah mempelajari cara membuat sembang langsung menggunakan Node.js dan soket. apl io. Kami bermula dengan mencipta pelayan web dan kemudian melihat cara membuka sambungan pada klien dan menghantar mesej ke bilik tertentu. Kami telah menambah ciri sembang kumpulan yang membenarkan semua pengguna yang disambungkan ke pelayan menghantar mesej antara satu sama lain.
Node.js menyediakan alatan dan perpustakaan yang sangat baik yang memudahkan untuk melaksanakan fungsi web masa nyata antara pelanggan dan pelayan. Selain itu, socket.io menyediakan ciri yang memudahkan pengendalian. Kami berharap artikel ini membantu anda mula membuat aplikasi sembang dengan Node.js!
Atas ialah kandungan terperinci Adakah ruang sembang nodejs mudah ditulis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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

Artikel ini membincangkan useeffect dalam React, cangkuk untuk menguruskan kesan sampingan seperti pengambilan data dan manipulasi DOM dalam komponen berfungsi. Ia menerangkan penggunaan, kesan sampingan yang biasa, dan pembersihan untuk mencegah masalah seperti kebocoran memori.

Lazy memuatkan kelewatan memuatkan kandungan sehingga diperlukan, meningkatkan prestasi web dan pengalaman pengguna dengan mengurangkan masa beban awal dan beban pelayan.

Fungsi pesanan yang lebih tinggi dalam JavaScript meningkatkan ketabahan kod, kebolehgunaan semula, modulariti, dan prestasi melalui abstraksi, corak umum, dan teknik pengoptimuman.

Artikel ini membincangkan kari dalam JavaScript, teknik yang mengubah fungsi multi-argumen ke dalam urutan fungsi argumen tunggal. Ia meneroka pelaksanaan kari, faedah seperti aplikasi separa, dan kegunaan praktikal, meningkatkan kod baca

Artikel ini menerangkan algoritma perdamaian React, yang dengan cekap mengemas kini DOM dengan membandingkan pokok DOM maya. Ia membincangkan manfaat prestasi, teknik pengoptimuman, dan kesan terhadap pengalaman pengguna. Kira -kira: 159

Artikel ini menerangkan USEContext dalam React, yang memudahkan pengurusan negara dengan mengelakkan penggerudian prop. Ia membincangkan faedah seperti keadaan terpusat dan penambahbaikan prestasi melalui pengurangan semula yang dikurangkan.

Artikel membincangkan menghalang tingkah laku lalai dalam pengendali acara menggunakan kaedah pencegahanDefault (), faedahnya seperti pengalaman pengguna yang dipertingkatkan, dan isu -isu yang berpotensi seperti kebimbangan aksesibiliti.

Artikel ini membincangkan kelebihan dan kekurangan komponen terkawal dan tidak terkawal dalam React, yang memberi tumpuan kepada aspek seperti ramalan, prestasi, dan kes penggunaan. Ia menasihatkan faktor -faktor yang perlu dipertimbangkan ketika memilih di antara mereka.
