コード例 #1
0
  @Override
  public void execute() {
    // 包格式:序列化的原语|源标签

    if (this.packet.getSubsegmentCount() < 2) {
      Logger.e(ServerDialogueCommand.class, "Dialogue packet format error");
      return;
    }

    byte[] priData = this.packet.getSubsegment(0);
    ByteArrayInputStream stream = new ByteArrayInputStream(priData);

    byte[] tagData = this.packet.getSubsegment(1);
    String speakerTag = Utils.bytes2String(tagData);

    byte[] identifierData = this.packet.getSubsegment(2);

    // 反序列化原语
    Primitive primitive = new Primitive(speakerTag);
    primitive.read(stream);

    this.service.processDialogue(
        this.session, speakerTag, Utils.bytes2String(identifierData), primitive);
  }