You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QuickFIX/J中增强登录消息以满足Acceptor端标签要求?

在QuickFIX/J登录消息中添加指定标签的方法

当然可以给QuickFIX/J的登录(Logon)消息添加Acceptor要求的特定标签(比如95、96),你的登录失败就是因为发送的Logon里缺少这些必填字段,Acceptor直接断开了连接(日志里的END_OF_STREAM就是对方主动关闭了会话)。

具体实现步骤如下:

  • 实现QuickFIX/J的Application接口,重点重写toAdmin方法——这个方法会在所有管理员消息(包括Logon)发送前被调用,正好用来修改Logon消息。
  • 在toAdmin方法里判断当前消息是否为Logon(消息类型MsgType=A),如果是就手动添加95(RawDataLength)和96(RawData)字段。
  • 将自定义的Application类配置到你的QuickFIX/J会话设置中。

示例代码如下:

import quickfix.*;
import quickfix.field.MsgType;

public class CustomLogonApp implements Application {
    @Override
    public void toAdmin(Message message, SessionID sessionID) {
        try {
            String msgType = message.getString(MsgType.FIELD);
            // 只处理Logon消息
            if (MsgType.LOGON.equals(msgType)) {
                // 替换成Acceptor要求的RawData内容和对应长度
                String rawDataValue = "指定的RawData值";
                int rawDataLength = rawDataValue.getBytes().length; // 注意编码匹配Acceptor要求

                message.setField(new quickfix.field.RawDataLength(rawDataLength));
                message.setField(new quickfix.field.RawData(rawDataValue));
            }
        } catch (FieldNotFound e) {
            e.printStackTrace();
        }
    }

    // 实现接口其他必填方法(空实现即可)
    @Override public void onCreate(SessionID sessionID) {}
    @Override public void onLogon(SessionID sessionID) {}
    @Override public void onLogout(SessionID sessionID) {}
    @Override public void toApp(Message message, SessionID sessionID) throws DoNotSend {}
    @Override public void fromAdmin(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, RejectLogon {}
    @Override public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType {}
}

注意事项:

  • 必须确保RawDataLength(95)的值和RawData(96)的实际字节数完全匹配,编码格式也要和Acceptor保持一致(比如UTF-8或ASCII)。
  • 确认Acceptor要求的RawData具体内容,不能随便填。

内容的提问来源于stack exchange,提问作者dxps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:30:06