1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-15 12:59:06 +00:00

Fix log error when closing server websocket

Fix #635
This commit is contained in:
Julien Duponchelle 2016-08-23 21:29:46 +02:00
parent ab38edf7ca
commit 147bb8758a
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
2 changed files with 26 additions and 5 deletions

View File

@ -16,14 +16,25 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import asyncio import asyncio
import aiohttp.errors
from aiohttp.web import WebSocketResponse from aiohttp.web import WebSocketResponse
from gns3server.web.route import Route from gns3server.web.route import Route
from gns3server.compute.notification_manager import NotificationManager from gns3server.compute.notification_manager import NotificationManager
class NotificationHandler: @asyncio.coroutine
def process_websocket(ws):
"""
Process ping / pong and close message
"""
try:
yield from ws.receive()
except aiohttp.errors.WSServerHandshakeError:
pass
class NotificationHandler:
@Route.get( @Route.get(
r"/notifications/ws", r"/notifications/ws",
description="Send notifications using Websockets") description="Send notifications using Websockets")
@ -32,8 +43,7 @@ class NotificationHandler:
ws = WebSocketResponse() ws = WebSocketResponse()
yield from ws.prepare(request) yield from ws.prepare(request)
# Process ping / pong and close message asyncio.async(process_websocket(ws))
asyncio.async(ws.receive())
with notifications.queue() as queue: with notifications.queue() as queue:
while True: while True:

View File

@ -17,6 +17,7 @@
import os import os
import aiohttp import aiohttp
import aiohttp.errors
import asyncio import asyncio
import tempfile import tempfile
@ -39,6 +40,17 @@ import logging
log = logging.getLogger() log = logging.getLogger()
@asyncio.coroutine
def process_websocket(ws):
"""
Process ping / pong and close message
"""
try:
yield from ws.receive()
except aiohttp.errors.WSServerHandshakeError:
pass
class ProjectHandler: class ProjectHandler:
@Route.post( @Route.post(
@ -238,8 +250,7 @@ class ProjectHandler:
ws = aiohttp.web.WebSocketResponse() ws = aiohttp.web.WebSocketResponse()
yield from ws.prepare(request) yield from ws.prepare(request)
# Process ping / pong and close message asyncio.async(process_websocket(ws))
asyncio.async(ws.receive())
with controller.notification.queue(project) as queue: with controller.notification.queue(project) as queue:
while True: while True: