Rumah hujung hadapan web Soal Jawab bahagian hadapan Adakah ruang sembang nodejs mudah ditulis?

Adakah ruang sembang nodejs mudah ditulis?

May 11, 2023 pm 07:38 PM

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
Salin selepas log masuk

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
Salin selepas log masuk

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');
    });
Salin selepas log masuk

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>
Salin selepas log masuk

b Buka sambungan pada klien

Buka sambungan WebSocket , Supaya pelanggan boleh menyambung ke soket pada pelayan. Kodnya adalah seperti berikut:

    const socket = io();
Salin selepas log masuk

Kami akan menyambung ke pelayan Node.js dan mengembalikan WebSocket yang belum dimuktamadkan supaya kami boleh mula menghantar dan menerima mesej melalui soket.

  1. 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);
    });
Salin selepas log masuk

, 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');
Salin selepas log masuk
  1. 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];
    });
Salin selepas log masuk

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
Salin selepas log masuk

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Mar 19, 2025 pm 03:58 PM

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.

Terangkan konsep pemuatan malas. Terangkan konsep pemuatan malas. Mar 13, 2025 pm 07:47 PM

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

Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Mar 18, 2025 pm 01:44 PM

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

Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Mar 18, 2025 pm 01:45 PM

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

Bagaimanakah algoritma Rekonsiliasi React berfungsi? Bagaimanakah algoritma Rekonsiliasi React berfungsi? Mar 18, 2025 pm 01:58 PM

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

Apakah useContext? Bagaimana anda menggunakannya untuk berkongsi keadaan antara komponen? Apakah useContext? Bagaimana anda menggunakannya untuk berkongsi keadaan antara komponen? Mar 19, 2025 pm 03:59 PM

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.

Bagaimana anda mengelakkan tingkah laku lalai di pengendali acara? Bagaimana anda mengelakkan tingkah laku lalai di pengendali acara? Mar 19, 2025 pm 04:10 PM

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.

Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Mar 19, 2025 pm 04:16 PM

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.

See all articles