Flask-SocketIO 握手失败
Flask-SocketIO handshake fails
我是 Flask-SocketIO 的新手,我正在努力在我的 Flask 服务器和我的 Javascript (React) 客户端之间建立 Socket IO 连接。
无论如何,我无法建立连接并开始发送消息。日志是这样写的:
127.0.0.1 - - [20/Aug/2018 15:33:03] "GET /socket.io/?EIO=3&transport=polling&t=MLNKwf9 HTTP/1.1" 200 381 0.000659
127.0.0.1 - - [20/Aug/2018 15:33:03] "POST /socket.io/?EIO=3&transport=polling&t=MLNKwfK HTTP/1.1" 400 218 0.000203
这些日志消息每 5 秒重复一次。
这是我在后端的代码:
app = Flask(__name__, static_url_path=None)
socket_io = SocketIO(app)
@socket_io.on('connect', namespace='/chat')
def test_connect():
print('connected')
在客户端:
import SocketIOClient from 'socket.io-client';
在构造函数中我这样做:
const uri = `http://${localhost}:5000/api/v1.0/chat`;
this.socket = SocketIOClient(uri);
我做错了什么?
如有任何帮助,我们将不胜感激!
如果有人遇到类似的问题,我可以自己解决。
问题是因为我的客户端是 React Native 应用程序,我需要像这样修改我的客户端代码:
window.navigator.userAgent = 'ReactNative';
const io = require('socket.io-client/dist/socket.io');
const connectionConfig = {
jsonp: false,
reconnection: true,
reconnectionDelay: 100,
reconnectionAttempts: 100000,
transports: ['websocket'], // you need to explicitly tell it to use websockets
};
const socket = io(path, connectionConfig);
这个帖子提供了答案:https://gist.github.com/ekryski/59eb6ce5b2774fa24d15
我是 Flask-SocketIO 的新手,我正在努力在我的 Flask 服务器和我的 Javascript (React) 客户端之间建立 Socket IO 连接。
无论如何,我无法建立连接并开始发送消息。日志是这样写的:
127.0.0.1 - - [20/Aug/2018 15:33:03] "GET /socket.io/?EIO=3&transport=polling&t=MLNKwf9 HTTP/1.1" 200 381 0.000659
127.0.0.1 - - [20/Aug/2018 15:33:03] "POST /socket.io/?EIO=3&transport=polling&t=MLNKwfK HTTP/1.1" 400 218 0.000203
这些日志消息每 5 秒重复一次。
这是我在后端的代码:
app = Flask(__name__, static_url_path=None)
socket_io = SocketIO(app)
@socket_io.on('connect', namespace='/chat')
def test_connect():
print('connected')
在客户端:
import SocketIOClient from 'socket.io-client';
在构造函数中我这样做:
const uri = `http://${localhost}:5000/api/v1.0/chat`;
this.socket = SocketIOClient(uri);
我做错了什么?
如有任何帮助,我们将不胜感激!
如果有人遇到类似的问题,我可以自己解决。
问题是因为我的客户端是 React Native 应用程序,我需要像这样修改我的客户端代码:
window.navigator.userAgent = 'ReactNative';
const io = require('socket.io-client/dist/socket.io');
const connectionConfig = {
jsonp: false,
reconnection: true,
reconnectionDelay: 100,
reconnectionAttempts: 100000,
transports: ['websocket'], // you need to explicitly tell it to use websockets
};
const socket = io(path, connectionConfig);
这个帖子提供了答案:https://gist.github.com/ekryski/59eb6ce5b2774fa24d15