-
My turn server is working and it has been connected by some users that they are on a voice or video call. Now I need to upgrade turn server to a new version due to some problems, and it may only take a few seconds to restart. But when I restart, the previously connected user will be disconnected.This is a bad use experience. Is there a way around to solve this problem? I have some ideas. I want to save all the information of Allcation, Permission and ChannelBind in DB and synchronize the memory with DB in real time. When the server restarts, the data in the DB is reloaded to try to restore the previous connection data. Are there better ways, or has been implemented ways? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi @GatlinHa Great idea but it has a few drawbacks.
Zooming out of this question - statefulness of turn sessions (as well as VoIP/WebRTC and anything that uses TURN in general) is a common problem. It is not only about upgrade but also about scaling in (when you want to shut down unused servers) People solve it by "draining" servers before shutting down/restart. The process is following:
To accomplish this you would need:
|
Beta Was this translation helpful? Give feedback.
Hi @GatlinHa
Great idea but it has a few drawbacks.
Zooming out of this question - statefulness of turn sessions (as well as VoIP/WebRTC and anything that uses TURN in general) is a common problem. It is not only about upgrade but also about scaling in (when you want to shut down unused servers)
People solve it by "draining" servers before shutting down/restart. The process is following: