class_docstr: Connect to a progress bar in a separate process with output_mode
  set to 'broadcast' in order to display the results (to stdout).
class_docstr_tok: ["Connect","to","a","progress","bar","in","a","separate","process","with","output_mode","set","to","'broadcast","'","in","order","to","display","the","results","(","to","stdout",")","."]
code: def __call__(self):
      import zmq
  
      context = zmq.Context()
      sock = context.socket(zmq.SUB)
      sock.setsockopt(zmq.SUBSCRIBE, "")
      sock.connect("tcp://" + self.hostname + ":" + str(self.port))
      # Get progress via socket
      percent = None
      while True:
          try:
              message = sock.recv()
              [percent_str, label] = message.split("|")
              percent = float(percent_str)
              self.label = label
              super().__call__(percent)
          except KeyboardInterrupt:
              if percent is not None:
                  self.param.message(
                      f"Exited at {percent:.3f}% completion"
                  )
              break
          except Exception:
              self.param.message(
                  f"Could not process socket message: {message!r}"
              )
  
imports: import math
  import sys
  import time
  import param
  from IPython.core.display import clear_output
  from ..core.util import ProgressIndicator
label_desc: Use image node_id 2 for calling the RemoteProgress obj's underlying member method code with example usage: obj.__call__() without return types