channel.py 360 B

123456789101112131415
  1. class Channel:
  2. subscribers = []
  3. def subscribe(self, ws):
  4. self.subscribers.append(ws)
  5. def unsubscribe(self, ws):
  6. self.subscribers.remove(ws)
  7. async def send(self, message):
  8. for ws in self.subscribers:
  9. if ws.open:
  10. await ws.send(message)
  11. else:
  12. self.unsubscribe(ws)