@@ -162,7 +162,7 @@ def __init__(
162162 self .ack = 0
163163 self .seq = 0
164164
165- self ._start_heartbeat ()
165+ # self._start_heartbeat()
166166 self ._start_serve_responses ()
167167 self ._start_close_session_checker ()
168168 self ._start_buffered_message_sender ()
@@ -675,6 +675,7 @@ async def block_until_connected() -> None:
675675 assert_incoming_seq_bookkeeping = assert_incoming_seq_bookkeeping ,
676676 get_stream = lambda stream_id : self ._streams .get (stream_id ),
677677 close_stream = close_stream ,
678+ send_message = self .send_message ,
678679 )
679680 )
680681
@@ -1138,6 +1139,7 @@ async def _serve(
11381139 ], # noqa: E501
11391140 get_stream : Callable [[str ], Channel [Any ] | None ],
11401141 close_stream : Callable [[str ], None ],
1142+ send_message : SendMessage ,
11411143) -> None :
11421144 """Serve messages from the websocket."""
11431145 reset_session_close_countdown ()
@@ -1194,6 +1196,19 @@ async def _serve(
11941196
11951197 # Shortcut to avoid processing ack packets
11961198 if msg .controlFlags & ACK_BIT != 0 :
1199+ await send_message (
1200+ stream_id = "heartbeat" ,
1201+ # TODO: make this a message class
1202+ # See schema.py
1203+ payload = {
1204+ "type" : "ACK" ,
1205+ },
1206+ control_flags = ACK_BIT ,
1207+ procedure_name = None ,
1208+ service_name = None ,
1209+ span = None ,
1210+ )
1211+
11971212 continue
11981213
11991214 stream = get_stream (msg .streamId )
0 commit comments