code: def write_data_as_message(self, buffer, data, content_related,
                                *, after_id=None):
          
          msg_id = self._get_new_msg_id()
          seq_no = self._get_seq_no(content_related)
          if after_id is None:
              body = GzipPacked.gzip_if_smaller(content_related, data)
          else:
              body = GzipPacked.gzip_if_smaller(content_related,
                  bytes(InvokeAfterMsgRequest(after_id, data)))
  
          buffer.write(struct.pack('<qii', msg_id, seq_no, len(body)))
          buffer.write(body)
          return msg_id
docs: Writes a message containing the given data into buffer.
  
          Returns the message id.