code: def encode(self, b64=False, always_bytes=True):
          
          if self.binary and not b64:
              encoded_packet = six.int2byte(self.packet_type)
          else:
              encoded_packet = six.text_type(self.packet_type)
              if self.binary and b64:
                  encoded_packet = 'b' + encoded_packet
          if self.binary:
              if b64:
                  encoded_packet += base64.b64encode(self.data).decode('utf-8')
              else:
                  encoded_packet += self.data
          elif isinstance(self.data, six.string_types):
              encoded_packet += self.data
          elif isinstance(self.data, dict) or isinstance(self.data, list):
              encoded_packet += self.json.dumps(self.data,
                                                separators=(',', ':'))
          elif self.data is not None:
              encoded_packet += str(self.data)
          if always_bytes and not isinstance(encoded_packet, binary_types):
              encoded_packet = encoded_packet.encode('utf-8')
          return encoded_packet
docs: Encode the packet for transmission.