【Copilotの答えの始め】

 

FlaskとSocket.ioを使った簡単なリアルタイムチャットアプリの例をご紹介します。この例では、ユーザーが送信したメッセージをリアルタイムで他のユーザーに表示するシンプルなチャットアプリを作成します。

1. Flaskアプリのセットアップ

まず、必要なパッケージをインストールします。

1
pip install Flask Flask-SocketIO

2. サーバーサイドのコード

次に、app.pyという名前のファイルを作成し、以下のコードを追加します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from flask import Flask, render_template
from flask_socketio import SocketIO, send

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('message')
def handle_message(msg):
    print('Message: ' + msg)
    send(msg, broadcast=True)

if __name__ == '__main__':
    socketio.run(app, debug=True)

3. クライアントサイドのコード

次に、templatesフォルダを作成し、その中にindex.htmlという名前のファイルを作成して、以下のコードを追加します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>リアルタイムチャット</title>
    <script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
</head>
<body>
    <h1>リアルタイムチャット</h1>
    <div id="chat">
        <input type="text" id="message" placeholder="メッセージを入力">
        <button onclick="sendMessage()">送信</button>
    </div>
    <div id="messages"></div>

    <script>
        var socket = io();

        socket.on('message', function(msg){
            var messages = document.getElementById('messages');
            var message = document.createElement('div');
            message.textContent = msg;
            messages.appendChild(message);
        });

        function sendMessage() {
            var input = document.getElementById('message');
            var message = input.value;
            socket.send(message);
            input.value = '';
        }
    </script>
</body>
</html>

4. アプリの実行

最後に、app.pyファイルを実行してアプリケーションを起動します。

1
python app.py

これで、ブラウザでhttp://localhost:5000にアクセスすると、リアルタイムチャットアプリが動作します。メッセージを入力して送信すると、他のユーザーにもリアルタイムでメッセージが表示されるようになります。

 

【Copilotの答えの終わり】

 

 

 

 

川の険父は蜻蛉で尺鰔