fix协议介绍5-测试消息
  TEZNKK3IfmPf 2023年11月15日 16 0

FIX.5.0SP2 Message

TestRequest [type '1']

The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID.

fix协议介绍5-测试消息

测试消息实现:

package cs.mina.codec.msg;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import cs.mina.exception.InValidDataException;

/*
 *@author(huangxiaoping)
 *@date 2013-11-25
 */
public class TestRequestMsg extends BaseMsg {
  private Tag testReqID = new Tag("112", "String", true);
  private Set<String> tagIdsSet = new HashSet<String>();

  public TestRequestMsg() {
    this.getHeadEntity().getMsgType().setTagValue("1");
    tagIdsSet.add("112");
    this.getBodyEntity().getBodyTagList().add(testReqID);
  }

  @Override
  public void decodeBody() {
    Set<String> already=new HashSet<String>();
    String[] bodyItems=this.body.split(BaseMsg.SOH);
    for(int i=0;i<bodyItems.length;i++){
      String[]tagItems=bodyItems[i].split("=");
      if(tagItems.length!=2){
        throw new InValidDataException("消息格式错误");
      }
      String tagId=tagItems[0];
      if(already.contains(tagId)){
        throw new InValidDataException("消息格式错误");
      }
      already.add(tagId);
      if(this.tagIdsSet.contains(tagId)){
          List<Tag> tagList=this.bodyEntity.getBodyTagList();
          for(int j=0;j<tagList.size();j++){
            Tag tag=tagList.get(j);
            if(tag.getTagId().equals(tagId)){
              tag.setTagValue(tagItems[1]);
              break;
            }
          }
      }else{
        throw new InValidDataException("消息格式错误,"+tagId+"不在消息体内");
      }
    }
  }

  @Override
  public void validate() {
    this.headEntity.validate();
    List<Tag> bodyTagList=this.bodyEntity.getBodyTagList();
    for(int i=0;i<bodyTagList.size();i++){
      bodyTagList.get(i).validate();
    }
    this.tailerEntity.validate();
  }

  public Tag getTestReqID() {
    return testReqID;
  }

  public void setTestReqID(Tag testReqID) {
    this.testReqID = testReqID;
  }

  public Set<String> getTagIdsSet() {
    return tagIdsSet;
  }

  public void setTagIdsSet(Set<String> tagIdsSet) {
    this.tagIdsSet = tagIdsSet;
  }

}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   23天前   50   0   0 java
TEZNKK3IfmPf