Mule ESB TCP请求-响应模式实现及示例求助
Mule ESB TCP 请求-响应模式实现示例
在Mule ESB中实现TCP请求-响应模式,核心是利用tcp:listener监听端口,并通过tcp:response组件复用同一客户端套接字返回响应,以下是可直接运行的配置示例:
完整Mule XML配置
<mule xmlns:tcp="http://www.mulesoft.org/schema/mule/tcp" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/tcp http://www.mulesoft.org/schema/mule/tcp/current/mule-tcp.xsd"> <!-- TCP 连接配置,指定监听端口及基础参数 --> <tcp:connector name="TCP_Connector" doc:name="TCP Connector" validateConnections="true" responseTimeout="30000" sendBufferSize="0" receiveBufferSize="0" clientSoTimeout="10000" serverSoTimeout="10000"/> <!-- 主流程:监听端口、处理请求、返回响应 --> <flow name="TCP_Request_Response_Flow" doc:name="TCP_Request_Response_Flow"> <!-- 监听指定端口,接收客户端请求 --> <tcp:listener config-ref="TCP_Connector" port="1234" doc:name="TCP Listener"/> <!-- 这里替换为你的业务处理逻辑,示例为简单的字符串拼接 --> <set-payload value="#["Processed response: " + payload]" doc:name="Process Request"/> <!-- 通过同一客户端套接字返回响应 --> <tcp:response doc:name="TCP Response"/> </flow> </mule>
关键配置说明
- TCP连接器:
TCP_Connector中配置了超时、缓冲区等参数,确保连接稳定性;responseTimeout设置服务器等待响应生成的最长时间。 - TCP监听器:
tcp:listener绑定到指定端口(示例为1234),自动维护客户端套接字会话。 - 业务处理:
set-payload只是示例,实际场景中可以替换为自定义Java组件、Groovy脚本或调用其他服务的逻辑。 - TCP响应:
tcp:response组件无需额外配置连接,会自动复用监听器接收到的客户端套接字发送响应。
测试方法
使用nc(netcat)或telnet工具测试:
# 连接到监听端口 nc localhost 1234 # 输入任意字符串,比如: Hello Mule TCP # 会立即收到响应: Processed response: Hello Mule TCP
内容的提问来源于stack exchange,提问作者Mahesh A R
相关产品推荐
相关产品推荐

