title: Swoole error 9009 message from Server process timer, not a Worker process callback?
body: <p>I use Swoole as a WebSocket server. Once per second I need to broadcast a message to all connected WS clients.</p>
  
  <p>Naive approach: I set a server timer <code>$server-&gt;tick()</code> prior to launching a server:</p>
  
  <pre><code>$this-&gt;server-&gt;tick(1000, function () {
      $message = 'hello';
      foreach ($this-&gt;server-&gt;connections as $fd) {
          $this-&gt;server-&gt;push($fd, $message);
      }
  });
  </code></pre>
  
  <p>Got errors:</p>
  
  <blockquote>
    <p>[2020-05-05 12:23:56 #21985.2]  ERROR   swServer_tcp_send (ERRNO 9009)
        can't send data to the connections in master process</p>
  </blockquote>
  
  <p>What is the correct way to push WebSocket messages not from a Master, but from a Worker process?</p>