Ich habe einen sehr einfachen Websocket-Server mit Hilfe von flask eingerichtet.Warum schließt mein WebSocket automatisch mit Flask?
websocket.py
from flask import Flask
from flask_uwsgi_websocket import GeventWebSocket
app = Flask(__name__)
ws = GeventWebSocket(app)
@app.route('/')
def index():
return render_template('index.html')
@ws.route('/foobar')
def echo(wscon):
msg = wscon.receive()
if msg is not None:
wscon.send(msg)
if __name__ == '__main__':
app.run(gevent=1000, host='0.0.0.0', port=9090)
index.html
<html>
<head>
<script language="Javascript">
var s = new WebSocket("ws://192.168.3.49:9090/foobar");
s.onopen = function() {
alert("connected !!!");
s.send("js send to server");
};
s.onmessage = function(e) {
alert("recv message")
var bb = document.getElementById('blackboard')
var html = bb.innerHTML;
bb.innerHTML = html + '<br/>' + e.data;
};
s.onerror = function(e) {
alert('error');
alert(e);
}
s.onclose = function(e) {
alert("connection closed");
}
function invia() {
var value = document.getElementById('testo').value;
alert(value);
s.send(value);
}
</script>
</head>
<body>
<h1>WebSocket</h1>
<input type="text" id="testo"/>
<input type="button" value="invia" onClick="invia();"/>
<div id="blackboard" style="width:640px;height:480px;background-color:black;color:white;border: solid 2px red;overflow:auto">
</div>
</body>
wenn ich http://ip:9090 zugreifen, bekomme ich den Schlag Informationen:
verbunden !!!
recv Nachricht
Verbindung geschlossen
warum websocket auto schließen? Und gelegentlich wird es einen Fehler
[uwsgi-http-Schlüssel: 192.168.3.49:9090 client_addr: 192.168.3.1 client_port: 9177] hr_instance_read(): Verbindung von Peer zurückgesetzt [plugins/http/http. c Linie 646]