<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def handle_forever(self):
 """ Handle data forever. """

        while self.connected:
            data = await self.connection.recv()
            if not data:
                if self.connected:
                    await self.disconnect(expected=False)
                break
            await self.on_data(data)