Javascript 来自浏览器的python Flask socketio 404/400

Javascript 来自浏览器的python Flask socketio 404/400,javascript,python,flask,websocket,socket.io,Javascript,Python,Flask,Websocket,Socket.io,我正在尝试运行连接到浏览器中react应用程序的flask socketio服务器 python服务器代码相关部分: from flask import Flask, request, jsonify from flask_socketio import SocketIO app = Flask(__name__) socketio = SocketIO(app) @socketio.on('message') def handle_message(message): print('

我正在尝试运行连接到浏览器中react应用程序的flask socketio服务器

python服务器代码相关部分:

from flask import Flask, request, jsonify
from flask_socketio import SocketIO

app = Flask(__name__)
socketio = SocketIO(app)

@socketio.on('message')
def handle_message(message):
    print('received message: ' + message)

if __name__ == '__main__':
    socketio.run(app)
在浏览器中运行的客户端:

var ws = new WebSocket("ws://127.0.0.1:5000");
console.log('connecting to log ws')
ws.onopen = function (event) {
  console.log('connection opened')
};
ws.onmessage = function (event) {
  console.log(event.data);
  self.recieve(event.data);
}
我在浏览器中遇到以下错误:

failed: Error during WebSocket handshake: Unexpected response code: 404
现在我听说这通常是因为我在使用的url中犯了错误。然而,当我改变

var ws=新网站ocketws://127.0.0.1:5000;

var ws=新网站ocketwss://127.0.0.1:5000;

我可以看到服务器获得了连接请求,但它在服务器端返回以下错误:

127.0.0.1 - - [02/Nov/2017 13:07:59] code 400, message Bad HTTP/0.9 request 
type ('\x16\x03\x01\x00t\x01\x00\x00p\x03\x01Y\xfb{\x1f\x0
5\x8d\xbf|\xdb\xeb\x12\xe8\xf6\xb0\xf9')

我需要做什么才能在这里成功建立连接?这里使用的浏览器是chrome,但我和其他人相处也有困难。

我找到了答案。您不能在浏览器中使用WebSocket与flask socketio通信,相反,我还需要在客户端使用常规socket.io与服务器通信。自从切换以来,我在客户端和服务器之间实现了完美的通信。

这可以通过浏览器实现,但如果您使用的是基于web的客户端,则需要确保它使用SocketIO,而不是其他实现。我发现其中一个有效的方法是