Skip to content
Search

Push technology

lastmod 2026-03-25created 2014-05-1242 edits

Push technology, or server push, is a style of information delivery on the internet in which the request for a given transmission is initiated by a central server. It contrasts with pull technology, in which the request for transmission is initiated by the client.

Categories

  • Apprise - Free open-source library supporting 50+ channels
  • Web syndication
  • Comet
  • Pull technology
  • pushd
  • Server-sent events (SSE)
  • Event stream format
  • ErrorPush - Open-source minimal error collection service
  • Ntfy - Send push notifications to mobile/desktop, free self-hosted or cloud
  • Pushover - Pushover makes it easy to get real-time notifications on your Android, iPhone, iPad, and Desktop (paid)
  • Gotify - a simple server for sending and receiving messages
  • Unified Push - Decentralized, open-source push notification protocol
  • Novu - Open-source notification infrastructure for developers
  • Pushy - https://pushy.me/ - Free for up to 100 devices only
  • Poke - Webhook-based push notifications
  • notify-send (libnotify) - Shows a simple alert window on Linux.
  • OneSignal
  • Upstash QStash - HTTP Push
  • Cloudflare Queues - HTTP Push
  • Ably - WebSocket/SSE, 6M messages/month, 200 concurrent connections
  • Pusher - WebSocket, 200 concurrent connections, 200k messages/day
  • PubNub - HTTP Long-poll
  • Azure Web PubSub - WebSocket
  • Upstash Redis REST - HTTP REST
  • Cloudflare Durable Objects + WebSocket Hibernation
  • Soketi - WebSocket, free self-hosted, open-source and Pusher-compatible
  • PieSocket - WebSocket, 1M messages/month
  • Novu - SSE, HTTP Streaming, 30k events/month, open source, multi-channel (in-app/email/SMS)
  • Knock - SSE, HTTP Streaming, 10k monthly recipients, In-app feed + WebSocket
  • Courier - SSE, HTTP Streaming, 10k notifications/month, multi-channel integration
  • Supabase Realtime - 200 concurrent connections, 2M messages/month
  • Firebase RTDB - 1GB storage, 10GB/month transfer
  • Firebase FCM - Completely free, specialized for mobile push

Polling & Callback

In general, there are two main ways to find out a state.

Polling
Periodically checks the state to find out the server's state. This act of checking is called a Heartbeat.
Call-back or Long Polling
The other is a method where you ask (register with) the party that knows the state (the listener) to notify you, and then the listener notifies you. It is an asynchronous (Asynchonous) method.

In the internet field, Polling is also called Pull technology and Call-back Push technology. (From the server's point of view)

Heartbeat interval adjustment

Heartbeat Interval Adjustment

The heartbeat begins at the default rate. The heartbeat interval is specified by the client and is sent as part of the ping request. The direct push algorithm on the client then dynamically adjusts the heartbeat interval to maintain the maximum time between heartbeats without exceeding the time-out value.

To determine the optimal heartbeat interval, the algorithm keeps a log of ping requests. If a ping request receives a response, the algorithm increases the interval. If no response is received at the end of the interval, the client determines that the network timed out and the interval is decreased as follows:

  • If the heartbeat was not increased during the last ping, the heartbeat is changed to the minimum heartbeat value.
  • If the heartbeat was increased during the last ping, then it is changed back to the previous heartbeat.

The algorithm also uses the following configurable settings:

  • HeartbeatIncrement that indicates the maximum amount that the interval can be increased or decreased.
  • HeartbeatMin and HeartbeatMax indicate the maximum interval allowed.

By using this algorithm, the client eventually determines the longest idle connection possible across the cellular network and corporate firewall.

See also

Favorite site

References


  1. Challenges_for_RTCS_Real-Time_Web_Services.pdf ↩

  2. Faster-parallel-processes.pdf ↩

author Zer0 sitemap