Class ApnsTransport

java.lang.Object
com.iizix.server.push.engine.transport.ApnsTransport
All Implemented Interfaces:
IPushTransport

public final class ApnsTransport extends Object implements IPushTransport
The native Apple Push Notification service transport: held.

Ruling 1 (2026-09-06): VAPID and FCM are the transports; native APNs is held, not cancelled. This class keeps the transport's place in the engine so that a subscription registered with a raw APNs token (the legacy iOS branch of push.js) is stored, listed and reported rather than rejected, and reports every send as DeliveryOutcome.TRANSPORT_NOT_CONFIGURED with the reason. There is no second "unconfigurable" state: the behaviour is the not-configured behaviour, only the message differs. iOS devices are reached through FcmTransport.

Author:
Christopher Mindus
  • Field Details

  • Constructor Details

    • ApnsTransport

      public ApnsTransport()
      Constructor.
  • Method Details

    • getKind

      public PushTransport getKind()
      Description copied from interface: IPushTransport
      Gets the transport kind.
      Specified by:
      getKind in interface IPushTransport
      Returns:
      The kind.
    • getState

      public TransportState getState(String appId)
      Description copied from interface: IPushTransport
      Gets whether this transport can send for an application.
      Specified by:
      getState in interface IPushTransport
      Parameters:
      appId - The application ID, * for iiziRun.
      Returns:
      The state, never null.
    • send

      public TransportResult send(SubscriptionRecord subscription, PushMessage message, long ttlMillis, DeliveryUrgency urgency)
      Description copied from interface: IPushTransport
      Sends a notification to one subscription. Blocks the calling (virtual) thread until the push service has answered or the request timed out.
      Specified by:
      send in interface IPushTransport
      Parameters:
      subscription - The subscription.
      message - The notification.
      ttlMillis - The effective time-to-live in milliseconds, already defaulted and clamped by the engine; converted to seconds at the header only.
      urgency - The effective urgency.
      Returns:
      The result, never null; a failure is an outcome, never an exception.
    • dispose

      public void dispose()
      Description copied from interface: IPushTransport
      Releases the transport's resources.
      Specified by:
      dispose in interface IPushTransport