summaryrefslogtreecommitdiff
path: root/rpc
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-20 14:45:16 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-20 14:45:16 +0200
commit83e20713c1c3b55532f6f022eaaf290471d3b5c5 (patch)
tree59d23e9052d9ebb2aaec35637b30ead63501a1c6 /rpc
parent1a6ae72c46b08c27db0ca5da9fe8f84b38c0f769 (diff)
rename rpc
Diffstat (limited to 'rpc')
-rw-r--r--rpc/relay.py25
-rw-r--r--rpc/rpc.py63
2 files changed, 88 insertions, 0 deletions
diff --git a/rpc/relay.py b/rpc/relay.py
new file mode 100644
index 0000000..9e56001
--- /dev/null
+++ b/rpc/relay.py
@@ -0,0 +1,25 @@
+from dotenv import load_dotenv, find_dotenv
+import os
+import zerorpc
+import gevent
+
+load_dotenv(find_dotenv())
+
+class RelayRPC(object):
+ def start(self):
+ print("Relay running on port {}".format(os.getenv('RELAY_PORT')))
+
+ def connected(self, msg):
+ print("got connect, trying to call back.")
+ print("Connecting to RPC on port {}".format(os.getenv('RPC_PORT')))
+ client = zerorpc.Client()
+ client.connect("tcp://127.0.0.1:" + os.getenv('RPC_PORT'))
+ client.send_param("key", "value")
+
+ def send_frame(self, frame):
+ print("got frame: {} bytes".format(len(frame)))
+
+rpc = RelayRPC()
+server = zerorpc.Server(rpc)
+server.bind("tcp://127.0.0.1:" + os.getenv('RELAY_PORT'))
+server.run()
diff --git a/rpc/rpc.py b/rpc/rpc.py
new file mode 100644
index 0000000..461ba21
--- /dev/null
+++ b/rpc/rpc.py
@@ -0,0 +1,63 @@
+from dotenv import load_dotenv, find_dotenv
+import os
+import zerorpc
+import gevent
+import time
+
+load_dotenv(find_dotenv())
+
+class CortexRPC(object):
+ def __init__(self, fn):
+ super().__init__()
+ self._listener = fn
+ self.connect()
+
+ def connect(self):
+ print("Connecting to RPC on port {}".format(os.getenv('RPC_PORT')))
+ self.rpc = zerorpc.Server(self)
+ self.rpc.bind("tcp://127.0.0.1:" + os.getenv('RPC_PORT'))
+ gevent.spawn(self.connected)
+ self.rpc.run()
+
+ def connected(self):
+ print("RPC running on port {}".format(os.getenv('RPC_PORT')))
+ print("Connecting to Relay on port {}".format(os.getenv('RELAY_PORT')))
+ self.relay = zerorpc.Client()
+ self.relay.connect("tcp://127.0.0.1:" + os.getenv('RELAY_PORT'))
+ val = None
+ try:
+ val = self.relay.connected("rpc")
+ print("rpc connected...".format(val))
+ except zerorpc.TimeoutExpired:
+ print("rpc timeout :(")
+ # print("defer sending a file...")
+ # gevent.sleep(2)
+ # self.send_file("test.png")
+ return val
+
+ def send_param(self, key, value):
+ print("aloha. {}: {}".format(key, value))
+ if self._listener is not None:
+ self._listener(key, value)
+ else:
+ print("No listener provided to CortexRPC")
+ return "ok"
+
+ def get_params(self):
+ print("get params call received")
+ return "lmao ok"
+
+ def send_frame(self, frame):
+ if self.relay is not None:
+ print("sending a frame...")
+ frame = '01234567' * 8 * 8 * 8 * 8 * 2
+ self.relay.send_frame('frame_00000.png', frame)
+ else:
+ print("Relay not ready...")
+
+if __name__ == '__main__':
+ def log_param(key, value):
+ print("log param. {}: {}".format(key, value))
+
+ # this will block
+ rpc = CortexRPC(log_param)