The publisher sends PUBLISH as the first message on a new bidirectional stream to initiate a subscription for a Track. The receiver verifies the publisher is authorized to publish this track.
PUBLISH Message {
Type (vi64) = 0x1D,
Length (16),
Request ID (vi64),
Track Namespace (..),
Track Name Length (vi64),
Track Name (..),
Track Alias (vi64),
Number of Parameters (vi64),
Parameters (..) ...,
Track Properties (..),
}
-
Request ID: See Section 6.4.2.1.
-
Track Namespace: Identifies a track's namespace as defined in (Section 8.7)
-
Track Name: Identifies the track name as defined in (Section 2.4.1).
-
Track Alias: The identifer used for this track in Subgroups or Datagrams (see Section 3.1.3).
-
Parameters: The parameters are defined in Section 9.20. The parameters that can appear in a PUBLISH are OBJECT_DELIVERY_TIMEOUT, AUTHORIZATION_TOKEN, SUBGROUP_DELIVERY_TIMEOUT, EXPIRES, LARGEST_OBJECT, FORWARD, SUBSCRIBER_PRIORITY, LOCATION_FILTER and GROUP_ORDER. Those governing delivery, such as FORWARD, GROUP_ORDER, SUBSCRIBER_PRIORITY, SUBGROUP_DELIVERY_TIMEOUT, OBJECT_DELIVERY_TIMEOUT and LOCATION_FILTER, inform the Subscriber of the initial Subscription parameters. If the PUBLISH is the result of a SUBSCRIBE_TRACKS, the parameters are handled as described in Section 3.6.2, otherwise, they represent the publisher's initial settings for the subscription, which the subscriber can change.
-
Track Properties : A sequence of Properties. See Section 8.4.
A subscriber receiving a PUBLISH for a Track it does not wish to receive SHOULD
send PUBLISH_ERROR with error code UNINTERESTED, and abandon reading any
publisher initiated streams associated with that subscription using a
STOP_SENDING frame.
A publisher that pauses the subscription (see Section 3.1.1) indicates that it will not transmit any objects until the subscriber resumes it. If the subscription is not paused, the publisher will start transmitting objects immediately, possibly before PUBLISH_OK. Delivery starts at the Next Object relative to the Largest Object at the time the publisher begins sending.