title: Django Channels - receiver function called multiple times depending on number of open web sockets
body: <p>I don't understand the behavior of Django Channels 2.4.0. When multiple web sockets are open, the receiver function is called as often as web sockets are open. </p>
  
  <p>Here the minimal code from the well-known chat example of the channels documentation</p>
  
  <pre><code>    # Receive message from WebSocket
  async def receive(self, text_data):
      text_data_json = json.loads(text_data)
      message = text_data_json['message']
  
      # Send message to room group
      await self.channel_layer.group_send(
          self.room_group_name,
          {
              'type': 'chat_message',
              'message': message
          }
      )
  
  # Receive message from room group
  async def chat_message(self, event):
      print(event) # this is called as often as sockets are open
      message = event['message']
      # Send message to WebSocket
      await self.send(text_data=json.dumps({
          'message': message
      }))
  </code></pre>
  
  <p>The problem becomes strong when I want to do logic things in the database triggered from the receiver function. Then things start to be done multiple times depending how many web sockets are open. Any idea what I'm missing here?</p>