Я пытаюсь установить sh соединение через веб-сокет, используя Flask -SocketIO, но я продолжаю получать сообщение «Ошибка при рукопожатии WebSocket: Неожиданный код ответа: 400» в консоли моего браузера.
Я используя браузер Chromium в Raspbian OS.
У меня установлен eventlet.
Вот код myapp.py:
from flask import Flask, jsonify, request, render_template
from flask_socketio import SocketIO, emit
import eventlet
eventlet.monkey_patch()
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
io = SocketIO(app)
clients = []
@app.route('/')
def index():
return render_template('index2.html')
@io.on('connected')
def connected():
clients.append(request.sid)
print("client connected")
print(request.sid)
@io.on('disconnect')
def disconnect():
clients.remove(request.sid)
print("client disconnected")
print(request.sid)
if __name__ == '__main__':
io.run(app, host='localhost', port=5000)
И это index2. html :
<html>
<br>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
</head>
<br>
<body>
<h2>HELLO</h2>
<script>
$("document").ready(function(){
var socket = io.connect('http://localhost:5000');
socket.on('connect', function() {
socket.emit('connected');
});
});
</script>
</body>
</html>
Я запускаю приложение с помощью команды
python myapp.py
Когда я перехожу к http://localhost: 5000 , я вижу надпись "HELLO" на веб-странице , но я не получаю сообщение «клиент подключен», и в консоли браузера появляется сообщение об ошибке «Ошибка при рукопожатии WebSocket: непредвиденный код ответа: 400».
Кто-нибудь имеет представление, что не так