ringcentral / ringcentral-python

RingCentral Connect Platform Python SDK
MIT License
43 stars 35 forks source link

WebSocket must heartbeat #68

Closed tylerlong closed 7 months ago

tylerlong commented 7 months ago

There is idleTimeout, by default it's 30 minutes. If in 30 minutes there is no traffic, the connection will time out:

{
    "errorCode": "WSG-902",
    "message": "Idle timeout expired"
  }

WebSocket ping frame doesn't count as traffic, so you cannot rely on WebSocket library's auto-ping feature.

It's not a problem for apps with lots of traffic. But for app with not so much traffic, the notification will stop working after 30 minutes.

Refer to the implementation in C# https://github.com/ringcentral/RingCentral.Net/blob/master/RingCentral.Net.WebSocket/WebSocketExtension.cs#L90-L101

tylerlong commented 7 months ago

I have fixed the issue for the Ruby SDK https://github.com/ringcentral/ringcentral-ruby/compare/d07b09dc7f4b2b6f02e3a78df824cb4641fdd3bd...master

I am going to update the Python SDK.