2017-11-02 16 views
0

ブラウザの反応アプリに接続するflask-socketioサーバーを実行しようとしています。python Flask socketio 404/400 from browser

のpython Serverコード(関連部分):

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 

今私は、私が使用しているURLに間違いを犯したので、これがよくあることを聞いてきました。しかし、私は

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') 

正常に接続するには何が必要ですか?ここで使用されているブラウザはクロムですが、他のブラウザでも難しいです。

答えて

0

私は答えを見つけました。フラスコのsocketioと通信するためにブラウザのWebSocketを使用することはできません。代わりに、クライアント側で通常のsocket.ioを使用してサーバと通信する必要がありました。スイッチングのため、私はクライアントとサーバーの間の完全な通信を得ています。

関連する問題