Class AppSessionPushAPI

java.lang.Object
com.iizix.server.push.api.PushSessionAPI
com.iizix.server.push.api.AppSessionPushAPI
All Implemented Interfaces:
IAppSessionPushNotificationAPI, IPushNotificationCommonAPI, PushEvents.ISink

public final class AppSessionPushAPI extends PushSessionAPI implements IAppSessionPushNotificationAPI
The Push Notification (PN) API of one application session, behind IAppSessionGyro.getPushNotificationAPI() (P4-04): the fan-out sends and the count, which need no channel and work from this order on through the device tier, and the six delegating calls (resetDeviceEverywhere since P4-08, P4-b), which hand over to the client session's IPushNotificationAPI and re-post its answer to this session's worker (PUSH-PROPS-DESIGN section 4.3).

A send is the engine's, exactly as the HTTP push is: the same message ID under data.iizi, the same filter, the same result per target. The callback receives one IPushTargetOutcome per subscription the send matched, with the user's name, so a developer sees which device failed and why (contract 9.3). The time-to-live is the option's, else the notification's own, else the application's TTL property, else the server default (contract 6.4, P4-03).

A send names the application's own subscriptions only: the filter carries this session's application. The Topic is what the declaration says: the empty string is the application-level subscription, so sendToTopic("") reaches the subscribers that chose no Topic, and countSubscriptions("") counts them - not every Topic, which is countSubscriptions(null).

Author:
Christopher Mindus