2017-08-03 2 views
1

kann ich erkennen (wenn ja, wie?), Wenn mein Python3.6 Sanic Web-Server-Verbindung mit Client-Anwendung verloren (Beispiel: Benutzer Web-Browser oder Netzwerk ausfällt schließt, etc ...)Kann ich 'Verbindung verloren' in Websockets mit Python3.6 Sanic erkennen?

 

from sanic import Sanic 
import sanic.response as response 

app = Sanic() 


@app.route('/') 
async def index(request): 
    return await response.file('index.html') 


@app.websocket('/wsgate') 
async def feed(request, ws): 
    while True: 
     data = await ws.recv() 
     print('Received: ' + data) 
     res = doSomethingWithRecvdData(data) 
     await ws.send(res) 



if __name__ == '__main__': 
    app.run(host="0.0.0.0", port=8000, debug=True) 

Antwort

2

Gelöst
from sanic import Sanic 
import sanic.response as response 
from websockets.exceptions import ConnectionClosed 

app = Sanic() 


@app.route('/') 
async def index(request): 
    return await response.file('index.html') 


@app.websocket('/wsgate') 
async def feed(request, ws): 
    while True: 
     try: 
      data = await ws.recv() 
     except (ConnectionClosed): 
      print("Connection is Closed") 
      data = None 
      break 
     print('Received: ' + data) 
     res = doSomethingWithRecvdData(data) 
     await ws.send(res) 

if __name__ == '__main__': 
    app.run(host="0.0.0.0", port=8000, debug=True) 
Verwandte Themen