From 50ee261c0fe276fedc7994177bf2cd6a9c230d74 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 18 Mar 2019 23:29:43 +0000 Subject: [PATCH] Make client support ping --- packages/broker/src/client.js | 3 +++ packages/broker/src/protocol.js | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/packages/broker/src/client.js b/packages/broker/src/client.js index 1dec222..7aa468b 100644 --- a/packages/broker/src/client.js +++ b/packages/broker/src/client.js @@ -11,6 +11,7 @@ const WS = activate require("@syndicate-lang/driver-websocket"); const { Assert, Clear, Message, Add, Del, Msg, + Ping, Pong, makeDecoder, } = activate require("./protocol"); @@ -56,6 +57,8 @@ spawn named "BrokerClientFactory" { on message ToBroker(url, $a) w(Message(a)); + on message _BrokerPacket(url, Ping()) w(Pong()); + during Observe(FromBroker(url, $spec)) { const ep = genUuid('sub'); on start w(Assert(ep, Observe(spec))); diff --git a/packages/broker/src/protocol.js b/packages/broker/src/protocol.js index 92ace4d..f8a7807 100644 --- a/packages/broker/src/protocol.js +++ b/packages/broker/src/protocol.js @@ -12,6 +12,10 @@ message type Add(endpointName, captures); message type Del(endpointName, captures); message type Msg(endpointName, captures); +// Bidirectional +message type Ping(); +message type Pong(); + function makeDecoder(initialBuffer) { return new Decoder(initialBuffer, { shortForms: { @@ -25,5 +29,6 @@ function makeDecoder(initialBuffer) { Object.assign(module.exports, { Assert, Clear, Message, Add, Del, Msg, + Ping, Pong, makeDecoder, });