DEV Community

Konstantinos Blatsoukas
Konstantinos Blatsoukas

Posted on

Push pull techs

short polling

The client (consumer) sends a request every N seconds

  • pros

    • it's easy to understand
    • it's easy to implement
  • cons

    • difficult to define a proper value for the interval
    • increased number of empty responses (or not new data)
    • this ends up, to consume resources on the server (broker side)
  • resources that used for every client (consumer) request

    • connection management
    • authentication/authorization
    • rate limiting
    • TLS termination
    • request validation
    • ...

long polling

if there are messages to the queue server (broker) sends the message to the client immediately.
A connection is kept open for a specified interval (this is specified from the client).

  • pros

    • less resources consumption
    • reduces the number of empty responses
  • cons

    • not good when you client expects immediate response from the server (broker)

web sockets

  • upgrade header included/required (both client and server)!

  • pros

    • bi-directional
    • re-uses the initial TCP connection
    • fast

server-sent events

You can imagine it as a server job runs periodically that sends messages every time a message is available (similar to long polling).

  • use cases

    • live feed
    • client progress
    • logging
  • pros

    • simplicity
    • compatible HTTP and HTTP/2 (this is not possible with web sockets)
    • lightweight (no extra headers)
    • Firewall friendly
  • cons

    • proxying is tricky
    • one way direction
    • open connection for a long time
    • stateful, difficult to scale horizontally

(Content-Type: text/event-stream)
("data: " + mydata)

Top comments (0)