我试图运行一个连接到浏览器中的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)
客户端js(在浏览器中运行):
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
现在我听说这通常是因为我在我使用的网址中犯了一个错误。但是,当我改变
var ws = new WebSocket("ws://127.0.0.1:5000");
到
var ws = new WebSocket("wss://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,但我也很困难。
答案 0 :(得分:0)
我想出了答案。您无法在浏览器中使用WebSocket与flask-socketio进行通信,而是我还需要在客户端使用常规的socket.io与服务器进行通信。自切换以来,我在客户端和服务器之间进行了完美的通信。