Rename "broker" to "server"

This commit is contained in:
Tony Garnock-Jones 2019-05-15 17:26:39 +01:00
parent b682a3fc3f
commit 32bccdbad9
21 changed files with 109 additions and 109 deletions

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
s6-svwait ../avahi-daemon s6-svwait ../avahi-daemon
cd /data/packages/broker cd /data/packages/server
exec node lib/index.js exec node lib/index.js

View File

@ -1,85 +0,0 @@
"use strict";
import {
Decoder, Encoder, Bytes,
Observe, Skeleton,
genUuid,
} from "@syndicate-lang/core";
const WS = activate require("@syndicate-lang/driver-websocket");
const {
Connect, Peer,
Assert, Clear, Message,
Add, Del, Msg, Err,
Ping, Pong,
makeDecoder,
} = activate require("./protocol");
assertion type WSBroker(url, scope);
assertion type ToBroker(addr, assertion);
assertion type FromBroker(addr, assertion);
assertion type BrokerConnection(addr);
assertion type BrokerConnected(addr);
message type ForceBrokerDisconnect(addr);
message type _BrokerPacket(addr, packet);
Object.assign(module.exports, {
WSBroker,
ToBroker, FromBroker,
BrokerConnection, BrokerConnected,
ForceBrokerDisconnect,
});
spawn named "BrokerClientFactory" {
during ToBroker($addr, _) assert BrokerConnection(addr);
during Observe(FromBroker($addr, _)) assert BrokerConnection(addr);
during Observe(BrokerConnected($addr)) assert BrokerConnection(addr);
during BrokerConnection($addr(WSBroker($url, $scope))) spawn named ['Broker', addr] {
const wsId = genUuid('broker');
during WS.WebSocket(wsId, url, {}) {
assert BrokerConnected(addr);
function w(x) {
send WS.DataOut(wsId, new Encoder().push(x).contents());
}
on start w(Connect(scope));
on message WS.DataIn(wsId, $data) {
if (data instanceof Bytes) {
send _BrokerPacket(addr, makeDecoder(data).next());
}
}
during ToBroker(addr, $a) {
const ep = genUuid('pub');
on start w(Assert(ep, a));
on stop w(Clear(ep));
}
on message ToBroker(addr, $a) w(Message(a));
on message _BrokerPacket(addr, Ping()) w(Pong());
during Observe(FromBroker(addr, $spec)) {
const ep = genUuid('sub');
on start w(Assert(ep, Observe(spec)));
on stop w(Clear(ep));
on message _BrokerPacket(addr, Add(ep, $vs)) {
react {
assert Skeleton.instantiateAssertion(FromBroker(addr, spec), vs);
stop on message _BrokerPacket(addr, Del(ep, vs));
}
}
on message _BrokerPacket(addr, Msg(ep, $vs)) {
send Skeleton.instantiateAssertion(FromBroker(addr, spec), vs);
}
}
}
}
}

View File

@ -1,5 +1,5 @@
{ {
"name": "@syndicate-lang/broker", "name": "@syndicate-lang/server",
"private": true, "private": true,
"version": "0.0.8", "version": "0.0.8",
"license": "GPL-3.0+", "license": "GPL-3.0+",
@ -26,6 +26,6 @@
}, },
"main": "lib/index.js", "main": "lib/index.js",
"bin": { "bin": {
"syndicate-broker": "./bin/syndicate-broker.js" "syndicate-server": "./bin/syndicate-server.js"
} }
} }

View File

@ -4,7 +4,7 @@ const UI = activate require("@syndicate-lang/driver-browser-ui");
// @jsx UI.html // @jsx UI.html
// @jsxFrag UI.htmlFragment // @jsxFrag UI.htmlFragment
const { WSBroker, ToBroker, FromBroker, BrokerConnected } = activate require("./client"); const { WSServer, ToServer, FromServer, ServerConnected } = activate require("./client");
assertion type Present(name); assertion type Present(name);
assertion type Says(who, what); assertion type Says(who, what);
@ -29,31 +29,31 @@ spawn {
const ui = new UI.Anchor(); const ui = new UI.Anchor();
during UI.UIChangeableProperty('#wsurl', 'value', $url) { during UI.UIChangeableProperty('#wsurl', 'value', $url) {
const addr = WSBroker(url, "broker"); const addr = WSServer(url, "broker");
during BrokerConnected(addr) { during ServerConnected(addr) {
on start outputItem(<span class="connected">connected to {addr}</span>, on start outputItem(<span class="connected">connected to {addr}</span>,
'state_connected'); 'state_connected');
on stop outputItem(<span class="disconnected">disconnected from {addr}</span>, on stop outputItem(<span class="disconnected">disconnected from {addr}</span>,
'state_disconnected'); 'state_disconnected');
assert ToBroker(addr, Present(this.nym)); assert ToServer(addr, Present(this.nym));
during FromBroker(addr, Present($who)) { during FromServer(addr, Present($who)) {
assert ui.context(who).html('#nymlist', <li><span class="nym">{who}</span></li>); assert ui.context(who).html('#nymlist', <li><span class="nym">{who}</span></li>);
} }
on message UI.GlobalEvent('#send_chat', 'click', _) { on message UI.GlobalEvent('#send_chat', 'click', _) {
if (this.next_chat) send ToBroker(addr, Says(this.nym, this.next_chat)); if (this.next_chat) send ToServer(addr, Says(this.nym, this.next_chat));
send UI.SetProperty('#chat_input', 'value', ''); send UI.SetProperty('#chat_input', 'value', '');
} }
on message FromBroker(addr, Says($who, $what)) { on message FromServer(addr, Says($who, $what)) {
outputItem(<span class="utterance"> outputItem(<span class="utterance">
<span class="nym">{who}</span><span class="utterance">{what}</span> <span class="nym">{who}</span><span class="utterance">{what}</span>
</span>); </span>);
} }
// on message Syndicate.WakeDetector.wakeEvent() { // on message Syndicate.WakeDetector.wakeEvent() {
// :: forceBrokerDisconnect(addr); // :: forceServerDisconnect(addr);
// } // }
} }
} }

View File

@ -0,0 +1,85 @@
"use strict";
import {
Decoder, Encoder, Bytes,
Observe, Skeleton,
genUuid,
} from "@syndicate-lang/core";
const WS = activate require("@syndicate-lang/driver-websocket");
const {
Connect, Peer,
Assert, Clear, Message,
Add, Del, Msg, Err,
Ping, Pong,
makeDecoder,
} = activate require("./protocol");
assertion type WSServer(url, scope);
assertion type ToServer(addr, assertion);
assertion type FromServer(addr, assertion);
assertion type ServerConnection(addr);
assertion type ServerConnected(addr);
message type ForceServerDisconnect(addr);
message type _ServerPacket(addr, packet);
Object.assign(module.exports, {
WSServer,
ToServer, FromServer,
ServerConnection, ServerConnected,
ForceServerDisconnect,
});
spawn named "ServerClientFactory" {
during ToServer($addr, _) assert ServerConnection(addr);
during Observe(FromServer($addr, _)) assert ServerConnection(addr);
during Observe(ServerConnected($addr)) assert ServerConnection(addr);
during ServerConnection($addr(WSServer($url, $scope))) spawn named ['Server', addr] {
const wsId = genUuid('server');
during WS.WebSocket(wsId, url, {}) {
assert ServerConnected(addr);
function w(x) {
send WS.DataOut(wsId, new Encoder().push(x).contents());
}
on start w(Connect(scope));
on message WS.DataIn(wsId, $data) {
if (data instanceof Bytes) {
send _ServerPacket(addr, makeDecoder(data).next());
}
}
during ToServer(addr, $a) {
const ep = genUuid('pub');
on start w(Assert(ep, a));
on stop w(Clear(ep));
}
on message ToServer(addr, $a) w(Message(a));
on message _ServerPacket(addr, Ping()) w(Pong());
during Observe(FromServer(addr, $spec)) {
const ep = genUuid('sub');
on start w(Assert(ep, Observe(spec)));
on stop w(Clear(ep));
on message _ServerPacket(addr, Add(ep, $vs)) {
react {
assert Skeleton.instantiateAssertion(FromServer(addr, spec), vs);
stop on message _ServerPacket(addr, Del(ep, vs));
}
}
on message _ServerPacket(addr, Msg(ep, $vs)) {
send Skeleton.instantiateAssertion(FromServer(addr, spec), vs);
}
}
}
}
}

View File

@ -19,7 +19,7 @@ const TCP_PORT = 8001;
const server = Http.HttpServer(null, HTTP_PORT); const server = Http.HttpServer(null, HTTP_PORT);
const dataspaceId = 'EToUNUJI0ykSfudmN9Z99wu62qGQB1nd8SHvjNtL5tM'; // public key of root broker const dataspaceId = 'EToUNUJI0ykSfudmN9Z99wu62qGQB1nd8SHvjNtL5tM'; // public key of root server
const localId = RandomID.randomId(8, false); const localId = RandomID.randomId(8, false);
const gatewayId = dataspaceId + ':' + localId; const gatewayId = dataspaceId + ':' + localId;
@ -109,13 +109,13 @@ spawn named 'websocketListener' {
spawn named 'tcpListener' { spawn named 'tcpListener' {
assert M.Publish(M.Service(gatewayId, '_syndicate._tcp'), null, TCP_PORT, ["tier=0"]); assert M.Publish(M.Service(gatewayId, '_syndicate._tcp'), null, TCP_PORT, ["tier=0"]);
on asserted S.IncomingConnection($id, S.TcpListener(TCP_PORT)) { on asserted S.IncomingConnection($id, S.TcpListener(TCP_PORT)) {
spawnStreamConnection('tcpBroker', id); spawnStreamConnection('tcpServer', id);
} }
} }
spawn named 'unixListener' { spawn named 'unixListener' {
on asserted S.IncomingConnection($id, S.UnixSocketServer("./sock")) { on asserted S.IncomingConnection($id, S.UnixSocketServer("./sock")) {
spawnStreamConnection('unixBroker', id); spawnStreamConnection('unixServer', id);
} }
} }
@ -226,11 +226,11 @@ spawn named 'peerDiscovery' {
/* /*
If there's a broker on our gateway interface, see if it's better than us. If there's a server on our gateway interface, see if it's better than us.
- if it is, use it. - if it is, use it.
- if it's not, pretend it isn't there. - if it's not, pretend it isn't there.
If there's no broker on our gateway interface (or we're pretending If there's no server on our gateway interface (or we're pretending
none exists), try to connect to the top. none exists), try to connect to the top.
*/ */

View File

@ -4,7 +4,7 @@ const UI = activate require("@syndicate-lang/driver-browser-ui");
// @jsx UI.html // @jsx UI.html
// @jsxFrag UI.htmlFragment // @jsxFrag UI.htmlFragment
const { WSBroker, ToBroker, FromBroker, BrokerConnected } = activate require("./client"); const { WSServer, ToServer, FromServer, ServerConnected } = activate require("./client");
assertion type ConnectionScope(connId, scope); assertion type ConnectionScope(connId, scope);
message type Disconnect(connId); message type Disconnect(connId);
@ -13,7 +13,7 @@ spawn {
const ui = new UI.Anchor(); const ui = new UI.Anchor();
assert ui.html('body', assert ui.html('body',
<div id="main"> <div id="main">
<h1>Broker monitor</h1> <h1>Server monitor</h1>
<div id="scopes"></div> <div id="scopes"></div>
</div>); </div>);
@ -23,22 +23,22 @@ spawn {
u.pathname = '/'; u.pathname = '/';
return u.toString(); return u.toString();
})(); })();
const addr = WSBroker(url, "monitor"); const addr = WSServer(url, "monitor");
during BrokerConnected(addr) { during ServerConnected(addr) {
during FromBroker(addr, ConnectionScope(_, $scope)) { during FromServer(addr, ConnectionScope(_, $scope)) {
const ui = new UI.Anchor(); const ui = new UI.Anchor();
assert ui.html('#scopes', assert ui.html('#scopes',
<div class={`scope_${scope}`}> <div class={`scope_${scope}`}>
<p>Scope: <tt>{scope}</tt></p> <p>Scope: <tt>{scope}</tt></p>
<ul></ul> <ul></ul>
</div>); </div>);
during FromBroker(addr, ConnectionScope($id, scope)) { during FromServer(addr, ConnectionScope($id, scope)) {
const ui = new UI.Anchor(); const ui = new UI.Anchor();
assert ui.html(`#scopes div.scope_${scope} ul`, assert ui.html(`#scopes div.scope_${scope} ul`,
<li>{id.toString()} <button class="disconnect">Disconnect</button></li>); <li>{id.toString()} <button class="disconnect">Disconnect</button></li>);
on message UI.UIEvent(ui.fragmentId, 'button.disconnect', 'click', _) { on message UI.UIEvent(ui.fragmentId, 'button.disconnect', 'click', _) {
send ToBroker(addr, Disconnect(id)); send ToServer(addr, Disconnect(id));
} }
} }
} }

View File

@ -19,7 +19,7 @@ spawn named 'test' {
// } // }
field this.count = 0; field this.count = 0;
dataflow console.log('Broker count:', this.count); dataflow console.log('Service count:', this.count);
during M.Discovered(M.Service($name, '_syndicate+ws._tcp'), $host, $port, $txt, $addr, "IPv4", _) during M.Discovered(M.Service($name, '_syndicate+ws._tcp'), $host, $port, $txt, $addr, "IPv4", _)
{ {