Skip to content
This repository was archived by the owner on Aug 15, 2025. It is now read-only.

Commit 4b60f1e

Browse files
committed
finish section 3.2.6
1 parent cf48898 commit 4b60f1e

File tree

1 file changed

+10
-13
lines changed
  • docs/Protocol Specifications

1 file changed

+10
-13
lines changed

docs/Protocol Specifications/core.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ weight: 0
4040
- [3.2.4 Establishing a connection](#324-establishing-a-connection)
4141
- [3.2.5 Closing a connection](#325-closing-a-connection)
4242
- [3.2.6 Guaranteed delivery of gateway messages through package acknowledgement](#326-guaranteed-delivery-of-gateway-messages-through-package-acknowledgement)
43-
- [3.3 Events over REST](#33-events-over-rest)
43+
- [3.3 Events over events](#33-events-over-events)
4444
- [3.4 HTTP](#34-http)
4545
- [3.5 Internet Protocol (IP)](#35-internet-protocol-ip)
4646
- [3.6 Compression](#36-compression)
@@ -607,14 +607,6 @@ TODO
607607

608608
#### 3.2.6 Guaranteed delivery of gateway messages through package acknowledgement
609609

610-
TODO
611-
612-
!!! bug "TODO"
613-
614-
This section will explain how [heartbeats](#322-heartbeats) and [sequence numbers](#3213-sequence-numbers-s)
615-
come together to form an application-layer package acknowledgement mechanism, and how that
616-
mechanism works.
617-
618610
polyproto implements an application-level guaranteed delivery mechanism. This ensures that all gateway
619611
messages sent from a home server to a client are received by the client in the order they were sent
620612
in – especially when network conditions are suboptimal. This mechanism is based on the use of
@@ -631,11 +623,16 @@ in – especially when network conditions are suboptimal. This mechanism is base
631623
retransmitted, preserving the integrity and completeness of communication between the client
632624
and server.
633625

634-
If `except` was present and contained entries in the heartbeat payload, the server must re-send these
635-
events in the `d` part of the heartbeat ACK response.
636-
TODO ^
626+
The [heartbeat payload](#3238-heartbeat-and-heartbeat-ack-events) defines a payload parameter `except`.
627+
628+
If `except` was present and contained entries in the heartbeat payload sent by a client, the server
629+
must re-send these events in the `d` part of the heartbeat ACK response. How this `d` payload is to be
630+
formatted is also defined in [section 3.2.3.8](#3238-heartbeat-and-heartbeat-ack-events).
631+
632+
The server must prioritize sending these "missed" events over other events. The server should expect
633+
that a client requests these events yet another time.
637634

638-
#### 3.3 Events over REST
635+
#### 3.3 Events over events
639636

640637
For some implementation contexts, a constant WebSocket connection might not be wanted. A client can
641638
instead opt to query an API endpoint to receive events, which would normally be sent through the WebSocket

0 commit comments

Comments
 (0)