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
{{ message }}
This repository was archived by the owner on Aug 15, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/Protocol Specifications/core.md
+10-13Lines changed: 10 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ weight: 0
40
40
-[3.2.4 Establishing a connection](#324-establishing-a-connection)
41
41
-[3.2.5 Closing a connection](#325-closing-a-connection)
42
42
-[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)
44
44
-[3.4 HTTP](#34-http)
45
45
-[3.5 Internet Protocol (IP)](#35-internet-protocol-ip)
46
46
-[3.6 Compression](#36-compression)
@@ -607,14 +607,6 @@ TODO
607
607
608
608
#### 3.2.6 Guaranteed delivery of gateway messages through package acknowledgement
609
609
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
-
618
610
polyproto implements an application-level guaranteed delivery mechanism. This ensures that all gateway
619
611
messages sent from a home server to a client are received by the client in the order they were sent
620
612
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
631
623
retransmitted, preserving the integrity and completeness of communication between the client
632
624
and server.
633
625
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.
637
634
638
-
#### 3.3 Events over REST
635
+
#### 3.3 Events over events
639
636
640
637
For some implementation contexts, a constant WebSocket connection might not be wanted. A client can
641
638
instead opt to query an API endpoint to receive events, which would normally be sent through the WebSocket
0 commit comments