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

基于Spring Integration实现TCP代理协议反序列化的方案探讨

解析TCP连接代理协议头的最优方案探讨

我正在寻求解析TCP连接中代理协议头的最优方案,需根据代理头中的数据判断是否接受或拒绝连接。

TCP负载为流式数据,无明确的「消息」定义。我们使用自定义反序列化器,仅读取InputStream并返回包含当前流中数据的byte[],代码如下:

protected final byte[] doDeserialize(InputStream inputStream, byte[] buffer) throws IOException
{
    int len = inputStream.read(buffer, 0, buffer.length);
    if (len < 0)
        throw new IOException("Stream closed");
    return this.copyToSizedArray(buffer, len);
}

此前有一个10年前的相关问题,我希望借助Spring Integration TCP/IP库的更新能力解决问题。

经调研,潜在解决方案如下:

  • 在反序列化器中读取代理头,并通知TCP服务器工厂保留/断开连接
  • 在TCP拦截器中读取反序列化后的byte[],但存在代理头被拆分为多个消息的风险
  • 创建自定义ServerConnectionFactory来实现该逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:32:01