Ich versuche, meine Flasche Webanwendung mit Websockets Mein Code läuft gut, aber wenn ich zwei oder mehrere Male Seite im Browser neu laden. Ich habe im Terminal OSError. Und dieser Fehler verhindert nicht, dass Flaschen arbeiten.OSError: rohe readinto() zurückgegeben ungültige Länge bei Verwendung von WebSockets
main.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chat</title>
<script type="text/javascript" src="{{ url_for('static', filename='jquery-2.2.0.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='socket.io.min.js') }}"></script>
</head>
<body>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.emit('connect', {data: 'U connected'});
socket.on('apply', function (e) {
console.log('it works');
$('#log').append('<br>' + e.data + '<br>')
});
});
</script>
<h1 id="log"></h1>
</body>
</html>
app.py
from flask_socketio import SocketIO, emit
from flask import Flask, render_template
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socket_io = SocketIO(app)
@app.route('/')
def index():
return render_template('main.html')
@socket_io.on('connect')
def connect():
emit('apply', {'data': "Connect"})
if __name__ == '__main__':
socket_io.run(app, debug=True)
Traceback
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/eventlet/greenpool.py", line 82, in _spawn_n_impl
func(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/eventlet/wsgi.py", line 703, in process_request
proto.__init__(sock, address, self)
File "/usr/local/lib/python3.5/socketserver.py", line 684, in __init__
self.handle()
File "/usr/local/lib/python3.5/http/server.py", line 417, in handle
self.handle_one_request()
File "/usr/local/lib/python3.5/site-packages/eventlet/wsgi.py", line 315, in handle_one_request
self.raw_requestline = self.rfile.readline(self.server.url_length_limit)
OSError: raw readinto() returned invalid length -1 (should have been between 0 and 8192)
Was bedeutet Fehler?
Gibt es ein Update dazu? Ich habe denselben Fehler! – Benny
Gleicher Fehler mit Nameko. – laike9m
Gleicher Fehler: Öffnen Sie die Webapp mit IE11 und schließen Sie IE (nicht nur die Registerkarte, sondern das gesamte Programm) und ich bekomme die obige Traceback reproduzierbar. Bei Firefox oder Chrom tritt dieser Fehler nicht auf! –