From 0d14510e82af901f7e6e47976cc094745b8e3dcd Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 22 Mar 2019 12:52:25 +0000 Subject: [PATCH] Handle pings --- syndicate/mini/core.py | 1 + syndicate/mini/protocol.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/syndicate/mini/core.py b/syndicate/mini/core.py index 8281a7c..2d9f609 100644 --- a/syndicate/mini/core.py +++ b/syndicate/mini/core.py @@ -119,6 +119,7 @@ class Connection(object): if protocol.Add.isClassOf(v): return self._lookup(v[0])._add(v[1]) if protocol.Del.isClassOf(v): return self._lookup(v[0])._del(v[1]) if protocol.Msg.isClassOf(v): return self._lookup(v[0])._msg(v[1]) + if protocol.Ping.isClassOf(v): self._send(self._encode(protocol.Pong())) def _send(self, bs): raise Exception('subclassresponsibility') diff --git a/syndicate/mini/protocol.py b/syndicate/mini/protocol.py index 456d537..ce7a92a 100644 --- a/syndicate/mini/protocol.py +++ b/syndicate/mini/protocol.py @@ -11,6 +11,10 @@ Add = Record.makeConstructor('Add', 'endpointName captures') Del = Record.makeConstructor('Del', 'endpointName captures') Msg = Record.makeConstructor('Msg', 'endpointName captures') +## Bidirectional +Ping = Record.makeConstructor('Ping', '') +Pong = Record.makeConstructor('Pong', '') + ## Standard Syndicate constructors Observe = Record.makeConstructor('observe', 'specification') Capture = Record.makeConstructor('capture', 'specification')