Python dan Node.js ialah kedua-dua bahasa pembangunan yang sangat popular, dan ia digunakan secara meluas dalam bidang yang berbeza. Python digunakan terutamanya untuk membangunkan aplikasi sains data dan pembelajaran mesin, manakala Node.js ialah rangka kerja aplikasi web pantas yang sesuai untuk membina aplikasi web masa nyata.
Dalam artikel ini, kita akan membincangkan cara membina aplikasi web masa nyata menggunakan Python dan Node.js. Kami mula-mula akan memperkenalkan konsep asas aplikasi web masa nyata, dan kemudian menunjukkan cara melaksanakan aplikasi masa nyata menggunakan komunikasi soket web (Soket) dalam Python dan Node.js.
Apakah itu aplikasi web masa nyata?
Aplikasi web masa nyata merujuk kepada aplikasi web yang boleh bertindak balas serta-merta kepada peristiwa dan perubahan ini boleh menjadi peristiwa interaksi pengguna atau perubahan sumber data belakang. Contoh biasa aplikasi web masa nyata termasuk program sembang, program pemantauan harga saham, permainan berbilang pemain dalam talian, dsb.
Terdapat banyak cara untuk melaksanakan aplikasi masa nyata, yang paling popular ialah menggunakan komunikasi Soket Web. Komunikasi soket web ialah protokol rangkaian khas yang membolehkan pelayan dan pelanggan berkomunikasi dalam masa nyata, dua hala, tanpa mengundi atau menyegarkan halaman.
Bagaimana untuk membina aplikasi web masa nyata menggunakan Python dan Node.js?
Kedua-dua Python dan Node.js menyediakan perpustakaan dan rangka kerja yang menyokong soket web, iaitu Python's Flask-SocketIO dan Node.js's Socket.IO. Di bawah ini kami akan memperkenalkan cara membina aplikasi web masa nyata dalam dua bahasa ini.
Bina aplikasi web masa nyata menggunakan Python Flask-SocketIO
Pertama, kita perlu memasang pustaka Python dan Flask-SocketIO yang berkaitan. Ia boleh dipasang dengan menjalankan arahan berikut:
pip install flask flask-socketio
Seterusnya, kita perlu mencipta aplikasi Flask asas dan mendayakan sambungan SocketIO. Anda boleh merujuk kepada kod berikut:
from flask import Flask, render_template from flask_socketio import SocketIO, emit app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app) @app.route('/') def index(): return render_template('index.html') @socketio.on('connect') def handle_connect(): print('Client connected') if __name__ == '__main__': socketio.run(app)
Dalam kod di atas, kami mula-mula mengimport perpustakaan Flask dan Flask-SocketIO. Kemudian buat aplikasi Flask dan dayakan sambungan SocketIO.
Seterusnya, kami mentakrifkan fungsi penghalaan indeks untuk mengembalikan templat HTML asas. Dalam fungsi handle_connect, kami mentakrifkan fungsi pemprosesan acara SocketIO untuk dicetuskan apabila pelanggan menyambung. Akhir sekali, kami memulakan aplikasi menggunakan fungsi socketio.run.
Kini, kita perlu mencipta templat HTML asas (index.html) untuk memaparkan aplikasi.
<!DOCTYPE html> <html> <head> <title>Flask-SocketIO Real-time Web Application</title> <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> <script type="text/javascript"> var socket = io.connect('http://' + document.domain + ':' + location.port); socket.on('connect', function() { console.log('Connected to server.'); }); </script> </head> <body> <h1>Flask-SocketIO Real-time Web Application</h1> </body> </html>
Dalam kod di atas, kami merujuk pustaka Socket.IO, menyambung ke pelayan SocketIO dan memaparkan mesej apabila sambungan berjaya.
Kini, kita boleh menjalankan kod di atas dan membuka http://127.0.0.1:5000 dalam penyemak imbas untuk melihat aplikasi web masa nyata Flask-SocketIO asas.
Bina aplikasi web masa nyata menggunakan Node.js Socket.IO
Seterusnya, kami akan memperkenalkan cara membina aplikasi web masa nyata menggunakan Node.js dan Socket.IO.
Pertama, kita perlu memasang Node.js dan mencipta projek Node.js kosong.
Kami kemudiannya boleh memasang pustaka Socket.IO dengan menjalankan arahan berikut:
npm install socket.io
Seterusnya, kita perlu mencipta aplikasi asas Node.js dan mendayakan pustaka Socket.IO. Anda boleh merujuk kepada kod berikut:
var app = require('http').createServer(handler), io = require('socket.io')(app), fs = require('fs'); app.listen(3000); function handler(req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.on('connection', function (socket) { console.log('Client connected'); socket.on('disconnect', function () { console.log('Client disconnected'); }); });
Dalam kod di atas, kami mula-mula mengimport perpustakaan http dan socket.io Node.js dan mencipta pelayan http asas. Kemudian, kami mentakrifkan fungsi pengendali yang mengembalikan templat HTML asas. Dalam acara io.on('connection'), kami mentakrifkan fungsi pengendalian acara SocketIO, yang dicetuskan apabila pelanggan menyambung atau memutuskan sambungan.
Dalam langkah seterusnya, kita perlu mencipta templat HTML asas (index.html) untuk memaparkan aplikasi.
<!DOCTYPE html> <html> <head> <title>Node.js Socket.IO Real-time Web Application</title> <script src="/socket.io/socket.io.js"></script> <script type="text/javascript"> var socket = io.connect('http://' + document.domain + ':3000'); socket.on('connect', function() { console.log('Connected to server.'); }); </script> </head> <body> <h1>Node.js Socket.IO Real-time Web Application</h1> </body> </html>
Dalam kod di atas, kami merujuk pustaka Socket.IO, menyambung ke pelayan SocketIO dan memaparkan mesej apabila sambungan berjaya.
Kini, kita boleh menjalankan kod di atas dan membuka http://localhost:3000 dalam penyemak imbas untuk melihat aplikasi web masa nyata Node.js Socket.IO asas.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara membina aplikasi web masa nyata menggunakan Python Flask-SocketIO dan Node.js Socket.IO. Aplikasi web masa nyata sering memerlukan penggunaan komunikasi Soket Web untuk membolehkan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Perpustakaan Flask-SocketIO dan Socket.IO menyediakan sokongan yang sepadan, yang boleh memudahkan operasi apabila membangunkan aplikasi web masa nyata.
Atas ialah kandungan terperinci Bina aplikasi web masa nyata menggunakan Python dan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!