class_docstr: A simple object for accessing the various zmq connections of an object.
  Attributes are:
  id (int): engine ID
  uuid (unicode): engine UUID
  pending: set of msg_ids
  stallback: tornado timeout for stalled registration
  registration_started (float): time when registration began
class_docstr_tok: ["A","simple","object","for","accessing","the","various","zmq","connections","of","an","object",".","Attributes","are",":","id","(","int",")",":","engine","ID","uuid","(","unicode",")",":","engine","UUID","pending",":","set","of","msg_ids","stallback",":","tornado","timeout","for","stalled","registration","registration_started","(","float",")",":","time","when","registration","began"]
code: def __init__(self, **kwargs):
      super().__init__(**kwargs)
      if not self.registration_started:
          self.registration_started = time.monotonic()
  
imports: import inspect
  import json
  import os
  import sys
  import time
  from collections import deque
  from datetime import datetime
  import zmq
  from jupyter_client.jsonutil import parse_date
  from jupyter_client.session import Session
  from tornado import ioloop
  from traitlets import Any, Bytes, Dict, Float, HasTraits, Instance, Integer, Set, Unicode, default
  from traitlets.config import LoggingConfigurable
  from zmq.eventloop.zmqstream import ZMQStream
  from ipyparallel import error, util
  from ..util import extract_dates
  from .heartmonitor import HeartMonitor
label_desc: Use image node_id 1 to create a new EngineConnector object from inherited base classes: HasTraits with example: obj = EngineConnector()