class_docstr: The heartbeat channel which monitors the kernel heartbeat.
  
  Note that the heartbeat channel is paused by default. As long as you start
  this channel, the kernel manager will ensure that it is paused and un-paused
  as appropriate.
class_docstr_tok: ["The","heartbeat","channel","which","monitors","the","kernel","heartbeat",".","Note","that","the","heartbeat","channel","is","paused","by","default",".","As","long","as","you","start","this","channel",",","the","kernel","manager","will","ensure","that","it","is","paused","and","un-paused","as","appropriate","."]
docstr: Create the heartbeat monitor thread.
  
  Parameters
  ----------
  context : :class:`zmq.Context`
      The ZMQ context to use.
  session : :class:`session.Session`
      The session to use.
  address : zmq url
      Standard (ip, port) tuple that the kernel is listening on.
docstr_tok: ["Create","the","heartbeat","monitor","thread",".","Parameters","--","--","--","--","--","context",":",":","class",":","`","zmq.Context","`","The","ZMQ","context","to","use",".","session",":",":","class",":","`","session.Session","`","The","session","to","use",".","address",":","zmq","url","Standard","(","ip",",","port",")","tuple","that","the","kernel","is","listening","on","."]
code: def __init__(self, context=None, session=None, address=None):
      """Create the heartbeat monitor thread.
  
      Parameters
      ----------
      context : :class:`zmq.Context`
          The ZMQ context to use.
      session : :class:`session.Session`
          The session to use.
      address : zmq url
          Standard (ip, port) tuple that the kernel is listening on.
      """
      super(HBChannel, self).__init__()
      self.daemon = True
  
      self.context = context
      self.session = session
      if isinstance(address, tuple):
          if address[1] == 0:
              message = "The port number for a channel cannot be 0."
              raise InvalidPortNumber(message)
          address = "tcp://%s:%i" % address
      self.address = address
  
      # running is False until `.start()` is called
      self._running = False
      self._exit = Event()
      # don't start paused
      self._pause = False
      self.poller = zmq.Poller()
  
imports: from __future__ import absolute_import
  import atexit
  import errno
  from threading import Thread, Event
  import time
  import zmq
  from zmq import ZMQError
  from jupyter_client import protocol_version_info
  from .channelsabc import HBChannelABC
label_desc: Use image node_id 1 to create a new HBChannel object from inherited base classes: Thread with example: obj = HBChannel(context, session, address)