Membina aplikasi komunikasi masa nyata menggunakan Redis dan JavaScript: Cara mengendalikan sambungan pengguna
Dengan perkembangan pesat Internet, permintaan untuk aplikasi komunikasi masa nyata semakin meningkat. Aplikasi komunikasi masa nyata boleh dibina dengan baik menggunakan Redis dan JavaScript untuk melaksanakan fungsi seperti penghantaran dan penerimaan mesej masa nyata, dan pengurusan pengguna dalam talian. Artikel ini akan memperkenalkan cara menggunakan Redis dan JavaScript untuk mengendalikan sambungan pengguna dan melaksanakan aplikasi komunikasi masa nyata.
Pertama, kita perlu memasang dan mengkonfigurasi pelayan Redis. Anda boleh memuat turun pakej pemasangan Redis yang sesuai untuk sistem pengendalian anda daripada tapak web rasmi Redis (https://redis.io/download), dan kemudian pasang dan konfigurasikannya mengikut dokumentasi rasmi.
Seterusnya, buat fail JavaScript untuk mengendalikan sambungan pengguna. Kami menggunakan Node.js sebagai persekitaran backend, jadi kami perlu memasang Node.js (https://nodejs.org/) terlebih dahulu.
Dalam fail JavaScript yang dibuat, mula-mula perkenalkan modul yang diperlukan:
const express = require('express'); const http = require('http'); const socketio = require('socket.io');
Kemudian, buat aplikasi Express untuk mengendalikan permintaan HTTP:
const app = express(); const server = http.createServer(app); const io = socketio(server);
Seterusnya, kita perlu mengendalikan sambungan pengguna. Apabila pengguna menyambung ke apl, kami perlu melakukan satu siri tindakan.
Pertama, dengar acara sambungan pengguna:
io.on('connection', (socket) => { // 处理连接逻辑 });
Kemudian, proses logik sambungan. Ini termasuk pengguna menyertai/meninggalkan acara, pemesejan dan banyak lagi. Dalam contoh ini, kami menambah fungsi bilik sembang yang mudah.
// 存储在线用户的列表 let onlineUsers = []; // 监听用户加入事件 socket.on('join', (user) => { onlineUsers.push(user); io.emit('userJoined', onlineUsers); }); // 监听用户离开事件 socket.on('disconnect', () => { onlineUsers = onlineUsers.filter((user) => user.id !== socket.id); io.emit('userLeft', onlineUsers); }); // 监听消息发送事件 socket.on('sendMessage', (message) => { io.emit('newMessage', message); });
Dalam kod di atas, kami mengendalikan logik sambungan dengan mendengar peristiwa yang dipancarkan oleh pengguna. Apabila pengguna menyertai, kami menambahkan mereka ke senarai pengguna dalam talian dan memberitahu semua pengguna apabila pengguna keluar, kami mengalih keluar mereka daripada senarai pengguna dalam talian dan memberitahu semua pengguna apabila pengguna menghantar mesej, kami menghantar mesej kepada semua pengguna; .
Untuk memudahkan pengurusan pengguna dalam talian, kita boleh menggunakan Redis untuk menyimpan senarai pengguna dalam talian. Dalam logik sambungan, kami menyimpan senarai pengguna dalam talian dalam Redis dan menyiarkan kemas kini kepada senarai pengguna dalam talian kepada semua pengguna melalui Redis.
Mula-mula, pasang modul Redis:
npm install redis
Kemudian, tambahkan kod sambungan Redis pada permulaan logik sambungan:
const redis = require('redis'); const client = redis.createClient(); client.on('error', (err) => { console.error(err); }); // 连接Redis服务器后执行的操作 client.on('connect', () => { // 从Redis中获取在线用户列表 client.smembers('onlineUsers', (err, reply) => { if (err) throw err; onlineUsers = reply; io.emit('userJoined', onlineUsers); }); }); // 监听用户加入事件 socket.on('join', (user) => { onlineUsers.push(user); // 将在线用户列表保存到Redis中 client.sadd('onlineUsers', user, (err, reply) => { if (err) throw err; io.emit('userJoined', onlineUsers); }); }); // 监听用户离开事件 socket.on('disconnect', () => { onlineUsers = onlineUsers.filter((user) => user.id !== socket.id); // 从Redis中删除离线用户 client.srem('onlineUsers', socket.id, (err, reply) => { if (err) throw err; io.emit('userLeft', onlineUsers); }); });
Dengan cara ini, kami boleh menyimpan senarai pengguna dalam talian ke Redis apabila pengguna menyertai dan keluar, dan Dapatkan senarai pengguna dalam talian melalui Redis.
Akhir sekali, kami perlu melancarkan aplikasi. Pergi ke direktori di mana fail JavaScript terletak di terminal dan laksanakan arahan berikut:
node 文件名.js
Kemudian, aplikasi akan berjalan pada pelayan tempatan. Pelayan boleh diakses dalam pelayar dan disambungkan ke pelayan melalui kod JavaScript.
Setakat ini, kami telah melaksanakan aplikasi pemesejan masa nyata yang ringkas menggunakan Redis dan JavaScript, dan memperkenalkan cara mengendalikan sambungan pengguna. Dengan cara ini, kami boleh membina aplikasi komunikasi masa nyata yang lebih kompleks dan mencapai lebih banyak fungsi. Semoga artikel ini dapat membantu anda!
Atas ialah kandungan terperinci Membina aplikasi pemesejan masa nyata dengan Redis dan JavaScript: cara mengendalikan sambungan pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!