title: How to communicate my Rest Api Server with my Web Socket server
body: <p>Here is my problem that is partially resolved but not in the best way I think. I have a REST API Server that has a method POST that only executes a batch process. The method immediately returns 200 (without any body) and the batch process continues its task in the server. This batch process has a logging file, that I usually see online with <code>tail -f mylogfile.log</code>. What I want now is to use a websocket server to send the output of the tail process to webpage. The code of the websocket server look like this:</p>
  
  <pre><code>import os
  import asyncio
  import websockets
  import subprocess
  
  from frontserv.start_server import WEBSOCKET_INTERCHANGE_FILE
  
  
  async def main(websocket, path):
      print("-&gt; STARTING")
      exists = os.path.isfile(WEBSOCKET_INTERCHANGE_FILE)
      if not exists:
          f = open(WEBSOCKET_INTERCHANGE_FILE, "w+")
          f.close()
  
      exe = ["tail", "-f", WEBSOCKET_INTERCHANGE_FILE]
      message = ""
      p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=None)
      while True:
          retcode = p.poll()
          print(message)
          message = message + p.stdout.readline().decode("utf-8") + "&lt;br&gt;"
          await websocket.send(message)
          await asyncio.sleep(0.1)
  
  
  start_server = websockets.serve(main, '127.0.0.1', 5678)
  asyncio.get_event_loop().run_until_complete(start_server)
  asyncio.get_event_loop().run_forever()
  </code></pre>
  
  <p>I have access to the batch process code, and I think there is a better way to resolve this. If instead of logging to a file I could send a message to the websocket server to dispatch a message to the browser, I think it would be a better implementation.</p>
  
  <p>Best regards!</p>