IP 消息头
本模块使用以下 MessageHeader 实例:
| 表头名称 | IpHeaders 常量 | 描述 |
|---|---|---|
ip_hostname | HOSTNAME | 接收 TCP 消息或 UDP 数据包的主机名。如果 lookupHost 为 false,则此字段包含 IP 地址。 |
ip_address | IP_ADDRESS | 接收 TCP 消息或 UDP 数据包的 IP 地址。 |
ip_port | PORT | UDP 数据包的远程端口。 |
| ip_localInetAddress | IP_LOCAL_ADDRESS | 套接字连接到的本地 InetAddress(自版本 4.2.5 起)。 |
ip_ackTo | ACKADDRESS | 发送 UDP 应用层确认的远程 IP 地址。框架在数据包中包含确认信息。 |
ip_ackId | ACK_ID | UDP 应用层确认的关联 ID。框架在数据包中包含确认信息。 |
ip_tcp_remotePort | REMOTE_PORT | TCP 连接的远程端口。 |
ip_connectionId | CONNECTION_ID | TCP 连接的唯一标识符。由框架为入站消息设置。当发送到服务器端入站通道适配器或回复入站网关时,需要此表头,以便端点可以确定要发送消息的连接。 |
ip_actualConnectionId | ACTUAL_CONNECTION_ID | 仅用于信息。当使用缓存或故障转移客户端连接工厂时,它包含实际的基础连接 ID。 |
contentType | MessageHeaders. CONTENT_TYPE | 入站消息的可选内容类型,在此表后描述。请注意,与其他表头常量不同,此常量位于 MessageHeaders 类中,而不是 IpHeaders 类中。 |
对于入站消息,默认的 TcpHeaderMapper 会映射 ip_hostname、ip_address、ip_tcp_remotePort 和 ip_connectionId。如果将映射器的 addContentTypeHeader 属性设置为 true,映射器会设置 contentType 头部(默认为 application/octet-stream;charset="UTF-8")。你可以通过设置 contentType 属性来更改默认值。你可以通过继承 TcpHeaderMapper 并重写 supplyCustomHeaders 方法来添加额外的头部。例如,在使用 SSL 时,你可以通过从 TcpConnection 对象获取会话对象来添加 SSLSession 的属性,该对象作为参数提供给 supplyCustomHeaders 方法。
对于出站消息,String 类型的负载会使用默认(UTF-8)字符集转换为 byte[]。可通过设置 charset 属性来更改默认字符集。
在自定义映射器属性或创建子类时,将映射器声明为 bean,并通过 mapper 属性向连接工厂提供其实例。