Flask-SocketIO を使用してリアルタイム Web アプリケーションを実装する方法
はじめに:
Web アプリケーションの開発に伴い、ユーザーはリアルタイムの対話と即時更新に対する要求がますます高まっています。従来の HTTP プロトコルではこれらのニーズを満たすことができません。WebSocket プロトコルはリアルタイム通信ソリューションを提供します。 Python では、Flask-SocketIO はリアルタイム Web アプリケーションを迅速に実装するのに役立つ強力なライブラリです。この記事では、Flask-SocketIOを使って簡単なリアルタイムチャットルームを構築する方法を紹介します。
準備
まず、Flask-SocketIO ライブラリをインストールする必要があります。 pip コマンドを使用してインストールできます。
pip install flask-socketio
Flask-SocketIO
を構成する Flask アプリケーションで、Flask-SocketIO をインポートして SocketIO を構成します。上記のコードでは、Flask アプリケーションを作成し、SECRET_KEY を設定します。 SECRET_KEY は WebSocket 通信の暗号化に使用され、デフォルトでランダムに生成される文字列です。次に、SocketIO オブジェクトを作成し、Flask アプリケーションに関連付けました。
@socketio.on
デコレーターを使用してイベント ハンドラーを登録します。以下は簡単な例です。 <pre class='brush:python;toolbar:false;'>from flask import Flask, render_template
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)</pre>
上記のコードでは、最初にルート
を定義し、対応するビュー関数は index.html## という名前の関数を返します。テンプレート。次に、
@socketio.on デコレータを使用して、
message イベントのハンドラを登録します。サーバーは
message イベントを受信すると、
handle_message 関数を呼び出し、メッセージをパラメーターとして渡します。
handle_message 関数は、受信したメッセージを出力し、
socketio.emit メソッドを通じて、接続されているすべてのクライアントにメッセージをブロードキャストします。
という名前のフォルダーを作成し、その中に
という名前のフォルダーを作成します。 html ファイル。簡単な例を次に示します。
@app.route('/') def index(): return render_template('index.html') @socketio.on('message') def handle_message(message): print('received message: ' + message) socketio.emit('message', message, broadcast=True)
上記のコードでは、
c0904ccfe49be21d581db460bf7726a3Socket.IO クライアント ライブラリを紹介します。次に、Socket.IO のインスタンスを作成し、socket.emit メソッドを使用して、送信ボタンがクリックされたときにメッセージを送信します。同時に、
socket.on メソッドを使用してサーバーから送信された
message イベントをリッスンし、メッセージの受信時にページに表示します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实时聊天室</title> <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> </head> <body> <h1>实时聊天室</h1> <div id="messages"></div> <div id="input"> <input type="text" id="message"> <button id="send">发送</button> </div> <script> var socket = io(); document.getElementById('send').onclick = function() { var message = document.getElementById('message').value; socket.emit('message', message); }; socket.on('message', function(message) { var div = document.createElement('div'); div.textContent = message; document.getElementById('messages').appendChild(div); }); </script> </body> </html>
where
your_app.py
http://localhost:5000 にアクセスすると、簡単なリアルタイム チャット ルームが表示されます。そこにメッセージを入力して送信ボタンをクリックすると、メッセージがページ上に即座に表示され、サーバーに接続されているすべてのクライアントにブロードキャストされます。
ここでは、参照して自分で実験できるように、コード サンプルも提供されています。実際のアプリケーションでは、ルーム管理、名前空間などの Flask-SocketIO の他の機能を組み合わせて、より複雑なリアルタイム アプリケーションを実装できます。この記事が Flask-SocketIO の理解と使用に役立つことを願っています。
以上がFlask-SocketIO を使用してリアルタイム Web アプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。