diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-05-20 14:45:16 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-05-20 14:45:16 +0200 |
| commit | 83e20713c1c3b55532f6f022eaaf290471d3b5c5 (patch) | |
| tree | 59d23e9052d9ebb2aaec35637b30ead63501a1c6 /rpc/rpc.py | |
| parent | 1a6ae72c46b08c27db0ca5da9fe8f84b38c0f769 (diff) | |
rename rpc
Diffstat (limited to 'rpc/rpc.py')
| -rw-r--r-- | rpc/rpc.py | 63 |
1 files changed, 63 insertions, 0 deletions
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) |
