From 349e5f19f41d45fc7720dcc96a73e6016c2f9f44 Mon Sep 17 00:00:00 2001 From: Hendrik Langer Date: Wed, 5 Aug 2020 15:21:10 +0200 Subject: [PATCH] send pings --- raspberry/roberto/camera/camera_gstreamer_webrtc.py | 4 ++-- raspberry/roberto/views/frontend/templates/index.html | 6 ++++++ raspberry/roberto/views/websocket/routes.py | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/raspberry/roberto/camera/camera_gstreamer_webrtc.py b/raspberry/roberto/camera/camera_gstreamer_webrtc.py index ea37896..f746cdd 100644 --- a/raspberry/roberto/camera/camera_gstreamer_webrtc.py +++ b/raspberry/roberto/camera/camera_gstreamer_webrtc.py @@ -413,7 +413,7 @@ class WebRTCCamera(Thread): else: print("Unknown message \"%s\", ignoring" % data['data']) - @sio.event + @sio.on('connect') def connected(): print("I'm connected!") @@ -421,7 +421,7 @@ class WebRTCCamera(Thread): def connect_error(): print("The connection failed!") - @sio.event + @sio.on('disconnect') def disconnected(): print("I'm disconnected!") diff --git a/raspberry/roberto/views/frontend/templates/index.html b/raspberry/roberto/views/frontend/templates/index.html index a99c5c2..9ee21ed 100644 --- a/raspberry/roberto/views/frontend/templates/index.html +++ b/raspberry/roberto/views/frontend/templates/index.html @@ -225,6 +225,12 @@ function getConnectionStats() { var statsInterval = window.setInterval(getConnectionStats, 1000); +setInterval(function(){ + if (socket.connected) { + socket.emit('ping'); + } +}, 5000); + diff --git a/raspberry/roberto/views/websocket/routes.py b/raspberry/roberto/views/websocket/routes.py index bf90d5e..f3f443d 100644 --- a/raspberry/roberto/views/websocket/routes.py +++ b/raspberry/roberto/views/websocket/routes.py @@ -111,6 +111,11 @@ def connect(): if sid != webrtccamera.sid: serial.add_callback('B', display_battery) +@socketio.on('ping', namespace='/webrtc') +def ping(): + sid = request.sid + print("Received ping from %s" % sid) + @socketio.on_error_default def default_error_handler(e): print(request.event["message"]) # "my error event"