Commit 7add0e85 authored by Jacob Schatz's avatar Jacob Schatz

Merge branch 'update-realtime-docs' into 'master'

Updates realtime documentation for the Frontend

See merge request !10038
parents 4c2ea7d0 2e1b9999
...@@ -36,16 +36,23 @@ You can find documentation about the desired architecture for a new feature buil ...@@ -36,16 +36,23 @@ You can find documentation about the desired architecture for a new feature buil
When writing code for realtime features we have to keep a couple of things in mind: When writing code for realtime features we have to keep a couple of things in mind:
1. Do not overload the server with requests. 1. Do not overload the server with requests.
1. It should feel realtime. 1. It should feel realtime.
Thus, we must strike a balance between sending requests and the feeling of realtime. Use the following rules when creating realtime solutions. Thus, we must strike a balance between sending requests and the feeling of realtime.
Use the following rules when creating realtime solutions.
1. The server will tell you how much to poll by sending `X-Poll-Interval` in the header. Use that as your polling interval. This way it is easy for system administrators to change the polling rate. A `X-Poll-Interval: -1` means you should disable polling, and this must be implemented. 1. The server will tell you how much to poll by sending `Poll-Interval` in the header.
1. A response of `HTTP 429 Too Many Requests`, should disable polling as well. This must also be implemented. Use that as your polling interval. This way it is easy for system administrators to change the
polling rate.
A `Poll-Interval: -1` means you should disable polling, and this must be implemented.
1. A response with HTTP status `4XX` or `5XX` should disable polling as well.
1. Use a common library for polling. 1. Use a common library for polling.
1. Poll on active tabs only. Use a common library to find out which tab currently has eyes on it. Please use [Focus](https://gitlab.com/andrewn/focus). Specifically [Eyeballs Detector](https://gitlab.com/andrewn/focus/blob/master/lib/eyeballs-detector.js). 1. Poll on active tabs only. Use a common library to find out which tab currently has eyes on it.
1. Use regular polling intervals, do not use backoff polling, or jitter, as the interval will be controlled by the server. Please use [Focus](https://gitlab.com/andrewn/focus). Specifically [Eyeballs Detector](https://gitlab.com/andrewn/focus/blob/master/lib/eyeballs-detector.js).
1. The backend code will most likely be using etags. You do not and should not check for status `304 Not Modified`. The browser will transform it for you. 1. Use regular polling intervals, do not use backoff polling, or jitter, as the interval will be
controlled by the server.
1. The backend code will most likely be using etags. You do not and should not check for status
`304 Not Modified`. The browser will transform it for you.
### Vue ### Vue
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment