Это пример с очень минимальным кодом. Если вам интересно, вы можете изучить больше и провести эксперименты.
Во-первых, вам понадобится модуль Flask -SocketIO, запустите приведенную ниже команду, чтобы установить его.
pip install flask-socketio
С В этом примере каталог проекта будет выглядеть примерно так:
ProjectDirectory
|
|-> templates
| |
| |-> index.html
|
|-> app.py
app.py
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'randomSecretKEy@123'
socket = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socket.on('message')
def message(data):
print(data)
emit('receive_message', data, broadcast=True)
if __name__ == '__main__':
socket.run(app)
index. html
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script type="text/javascript" charset="utf-8">
var socket = io();
socket.on('connect', function() {
console.log('Connected to server');
});
socket.on('receive_message', function(msg) {
console.log('Received message: ', msg)
})
function sendMessage() {
msg = $('#message').val()
socket.emit('message', msg)
}
</script>
<input type="text" id="message"><button onclick="sendMessage()">Send</button>
Запустите приложение Flask, откройте две вкладки браузера с инструментами веб-разработчика, открытыми рядом. Как только вы откроете, вы увидите, что сообщение Connected to server
было зарегистрировано. Теперь введите какое-нибудь сообщение и нажмите кнопку отправки на одной вкладке, и вы увидите, что сообщение было получено на консоли другой вкладки.
Я надеюсь, что вы получите направление, и это полезно для вы.
Примечание: Опять же, я говорю, что это очень простой пример c. Конечно, вы можете добавить больше logi c и функциональности и сделать его больше похожим на приложение для чата, но это выйдет за рамки этого вопроса. Итак, я оставлю это вам и вашему воображению, насколько вы можете научиться и продвигаться вперед. О документации модуля можно прочитать здесь .