def parse(msg): sender, conn_id, path, rest = msg.split(' ', 3) headers, rest = tnetstrings.parse(rest) body, _ = tnetstrings.parse(rest) if type(headers) is str: headers = json.loads(headers) return Request(sender, conn_id, path, headers, body)
import zmq from mongrel2 import tnetstrings from pprint import pprint CTX = zmq.Context() addr = "ipc://run/control" ctl = CTX.socket(zmq.REQ) print "CONNECTING" ctl.connect(addr) while True: cmd = raw_input("> ") # will only work with simple commands that have no arguments ctl.send(tnetstrings.dump([cmd, {}])) resp = ctl.recv() pprint(tnetstrings.parse(resp)) ctl.close()
def request(self, name, **args): msg = tnetstrings.dump([name, args]) self.sock.send(msg) rep = self.sock.recv() result, remain = tnetstrings.parse(rep) return result