def broadcast(self, response):
        '''Broadcast ``message`` to all :attr:`clients`.'''
        remove = set()
        channel = to_string(response[0])
        message = response[1]
        if self.protocol:
            try:
                message = self.protocol.decode(message)
            except ProtocolError:
                self.logger.exception('Could not decode message')
                return
        for client in self._clients:
            try:
                client(channel, message)
            except IOError:
                remove.add(client)
            except Exception:
                self._loop.logger.exception(
                    'Exception while processing pub/sub client. Removing it.')
                remove.add(client)
        self._clients.difference_update(remove)
Broadcast ``message`` to all :attr:`clients`.