Flask SocketIO:WebSocket握手时出错

问题描述 投票:0回答:1

我正在尝试使用Flask-SocketIO建立Websocket通信,但是在浏览器的控制台中,我不断收到“ WebSocket握手期间错误:意外的响应代码:400”。

我正在Raspbian OS上使用Chromium浏览器。

我已安装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“。

有人知道错在哪里吗?

flask websocket flask-socketio
1个回答
0
投票

400是错误的请求。 Socket.io用于Node,您正在运行node.js吗?

© www.soinside.com 2019 - 2024. All rights reserved.