async def _on_receive_array(self, array):
if array[<NUM_LIT:0>] == '<STR_LIT>':<EOL><INDENT>pass  <EOL><DEDENT>else:<EOL><INDENT>wrapper = json.loads(array[<NUM_LIT:0>]['<STR_LIT:p>'])<EOL>if '<STR_LIT:3>' in wrapper:<EOL><INDENT>self._client_id = wrapper['<STR_LIT:3>']['<STR_LIT:2>']<EOL>logger.info('<STR_LIT>', self._client_id)<EOL>await self._add_channel_services()<EOL><DEDENT>if '<STR_LIT:2>' in wrapper:<EOL><INDENT>pblite_message = json.loads(wrapper['<STR_LIT:2>']['<STR_LIT:2>'])<EOL>if pblite_message[<NUM_LIT:0>] == '<STR_LIT>':<EOL><INDENT>batch_update = hangouts_pb2.BatchUpdate()<EOL>pblite.decode(batch_update, pblite_message,<EOL>ignore_first_item=True)<EOL>for state_update in batch_update.state_update:<EOL><INDENT>logger.debug('<STR_LIT>', state_update)<EOL>header = state_update.state_update_header<EOL>self._active_client_state = header.active_client_state<EOL>await self.on_state_update.fire(state_update)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>logger.info('<STR_LIT>', pblite_message[<NUM_LIT:0>])<EOL><DEDENT><DEDENT><DEDENT>
Parse channel array and call the appropriate events.