in src/rosbridge/server.py [0:0]
def handle_rpc(self, rpc):
rpc_method = rpc.get('method', None)
rpc_params = rpc.get('params', None)
def reply(rpc_result, rpc_error=None):
tx = zmq_serialize.dump_msg({
'result': rpc_result,
'error': rpc_error,
'log_msgs': self.log_msgs,
})
del self.log_msgs[:]
logger.debug('%s < %s', self.url, tx[0])
self.sock.send_multipart(tx, flags=0, copy=False, track=False)
try:
if rpc_method == 'step':
reply(self.handle_step(rpc_params))
elif rpc_method == 'reset':
reply(self.handle_reset(rpc_params))
elif rpc_method == 'setup':
reply(self.handle_setup(rpc_params))
elif rpc_method == 'close':
reply(self.handle_close(rpc_params))
elif rpc_method == 'render':
reply(self.handle_render(rpc_params))
else:
raise Exception('unknown method %s' % rpc_method)
except:
ex_type, ex_value, ex_tb = sys.exc_info()
traceback.print_exception(ex_type, ex_value, ex_tb)
reply(None, str(ex_type) + ': ' + str(ex_value))