You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Adds Fetch Type field to Fetch
- Defines pre-existing behavior as Fetch Type: Standalone Fetch
- Defines new Fetch Type: Joining Fetch
- Defines new error code: Invalid Subscribe ID
* Subscribe ID: The Subscribe ID identifies a given fetch request. Subscribe ID
1443
1466
is a variable length integer that MUST be unique and monotonically increasing
1444
-
within a session.
1467
+
within a session. For a Standalone Fetch a new Subscribe ID MUST be used. For
1468
+
a Joining Fetch, the Subscribe ID MUST correspond to a Subscribe which has already
1469
+
been sent. If a publisher receives a Joining Fetch with a Subscribe ID that does
1470
+
not correspond to an existing Subscribe, it MUST close the session with an
1471
+
Invalid Subscribe ID error.
1472
+
1473
+
* Subscriber Priority: Specifies the priority of a fetch request relative to
1474
+
other subscriptions or fetches in the same session. Lower numbers get higher
1475
+
priority. See {{priorities}}.
1476
+
1477
+
* Fetch Type: Identifies the type of Fetch, whether joining or standalone.
1478
+
1479
+
* Parameters: The parameters are defined in {{version-specific-params}}.
1480
+
1481
+
Fields present only for Standalone Fetch (0x1):
1445
1482
1446
1483
* Track Namespace: Identifies the namespace of the track as defined in
1447
1484
({{track-name}}).
1448
1485
1449
1486
* Track Name: Identifies the track name as defined in ({{track-name}}).
1450
1487
1451
-
* Subscriber Priority: Specifies the priority of a fetch request relative to
1452
-
other subscriptions or fetches in the same session. Lower numbers get higher
1453
-
priority. See {{priorities}}.
1454
-
1455
1488
* Group Order: Allows the subscriber to request Objects be delivered in
1456
1489
Ascending (0x1) or Descending (0x2) order by group. See {{priorities}}.
1457
1490
A value of 0x0 indicates the original publisher's Group Order SHOULD be
@@ -1466,8 +1499,9 @@ used. Values larger than 0x2 are a protocol error.
1466
1499
* EndObject: The end Object ID, plus 1. A value of 0 means the entire group is
1467
1500
requested.
1468
1501
1469
-
* Parameters: The parameters are defined in {{version-specific-params}}.
1502
+
Field present only for Joining Fetch (0x2):
1470
1503
1504
+
* Previous Group Count: The number of groups to Fetch prior to the StartGroup of the corresponding Subscribe
1471
1505
1472
1506
Objects that are not yet published will not be retrieved by a FETCH.
1473
1507
The latest available Object is indicated in the FETCH_OK, and is the last
@@ -1485,6 +1519,29 @@ A publisher MUST send fetched groups in group order, either ascending or
1485
1519
descending. Within each group, objects are sent in Object ID order;
1486
1520
subgroup ID is not used for ordering.
1487
1521
1522
+
A publisher which receives a Fetch message with a Fetch Type of 0x2 should treat it as a Fetch with the following fields dynamically determined from the corresponding Subscribe:
1523
+
1524
+
* Track Namespace: Same as in the corresponding Subscribe
1525
+
1526
+
* Track Name: Same as in the corresponding SUBSCRIBE
1527
+
1528
+
* StartGroup: LatestGroup as determined for the SUBSCRIBE minus PreviousGroups from the JOIN
1529
+
1530
+
* StartObject: Always 0
1531
+
1532
+
* EndGroup: StartGroup of the corresponding SUBSCRIBE minus 1 (double check minus 1)
1533
+
1534
+
* EndObject: StartObject of the corresponding SUBSCRIBE minus 1 (double check minus 1)
1535
+
1536
+
A Joining Fetch MUST be sent in ascending group order.
1537
+
1538
+
TODO:
1539
+
- [x] merge with FETCH using FetchType
1540
+
- [x] define FetchTypes (Look at Subscribe FilterType for conventions)
1541
+
- [ ] Error for Subscribe ID does not exist with FetchType 0x1
1542
+
- [x] shift priority up into shared fields
1543
+
- [x] omit group order (for our first proposed FetchType)
1544
+
1488
1545
## FETCH_CANCEL {#message-fetch-cancel}
1489
1546
1490
1547
A subscriber issues a `FETCH_CANCEL` message to a publisher indicating it is no
0 commit comments