MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / request

Method request

src/Connection/Connection.py:573–589  ·  view source on GitHub ↗
(self, cmd, params={}, stream_to=None)

Source from the content-addressed store, hash-verified

571
572 # Create and send a request to peer
573 def request(self, cmd, params={}, stream_to=None):
574 # Last command sent more than 10 sec ago, timeout
575 if self.waiting_requests and self.protocol == "v2" and time.time() - max(self.last_req_time, self.last_recv_time) > 10:
576 self.close("Request %s timeout: %.3fs" % (self.last_cmd_sent, time.time() - self.last_send_time))
577 return False
578
579 self.last_req_time = time.time()
580 self.last_cmd_sent = cmd
581 self.req_id += 1
582 data = {"cmd": cmd, "req_id": self.req_id, "params": params}
583 event = gevent.event.AsyncResult() # Create new event for response
584 self.waiting_requests[self.req_id] = {"evt": event, "cmd": cmd}
585 if stream_to:
586 self.waiting_streams[self.req_id] = stream_to
587 self.send(data) # Send request
588 res = event.get() # Wait until event solves
589 return res
590
591 def ping(self):
592 s = time.time()

Callers 1

pingMethod · 0.95

Calls 3

closeMethod · 0.95
sendMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected