Skip to content

Commit 88fea17

Browse files
committed
Heartbeat
1 parent 857d1b6 commit 88fea17

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

ringcentral/demos/demo_web_socket.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
from dotenv import load_dotenv
2-
from ringcentral import SDK
3-
from ringcentral.websocket.events import WebSocketEvents
42
import json
53
import uuid
64
import os
75
import asyncio
6+
import sys
7+
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))) # Add the project root to sys.path
8+
from ringcentral import SDK
9+
from ringcentral.websocket.events import WebSocketEvents
810

911

1012
def on_message(message):
1113
print("\n WebSocket message:\n")
1214
print(json.loads(message))
13-
print("\n User email:\n")
14-
print(json.loads(message)[1]["contact"]["email"])
15+
if(len(json.loads(message)) > 1):
16+
print("\n User email:\n")
17+
print(json.loads(message)[1]["contact"]["email"])
1518

1619

1720
def on_created(web_socket_client):

ringcentral/websocket/web_socket_client.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from .events import WebSocketEvents
77
import json
88
import asyncio
9-
9+
import uuid
1010

1111
class WebSocketClient(Observable):
1212
def __init__(self, platform):
@@ -48,6 +48,17 @@ async def open_connection(self, ws_uri, ws_access_token):
4848
self._web_socket = connection_info
4949
self._is_ready = True
5050
self.trigger(WebSocketEvents.connectionCreated, self)
51+
52+
# heartbeat every 10 minutes
53+
async def timer_function():
54+
while True:
55+
if self._done:
56+
timer.cancel()
57+
break
58+
await asyncio.sleep(600)
59+
await self.send_message([{"type": "Heartbeat", "messageId": str(uuid.uuid4())}])
60+
timer = asyncio.create_task(timer_function())
61+
5162
await asyncio.sleep(0)
5263
while True:
5364
message = await websocket.recv()

0 commit comments

Comments
 (0)