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.
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');
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!