我目前正在为 tornado 中的 hl7 协议编写一个异步 tcp 转发器(本质上,消息被转发到另一个端点并返回,而套接字保持打开)。
目前,实现是 TCPServer 的一个实例,其通道连接到另一个目的地。所以有套接字,s1 <--> s2 和 s3 <--> s4,其中 s1 是客户端,s2 是 TCPServer 实例接受的套接字,s3 是转发器,s4 是我们要与之交谈的实际端点。
现在假设 s4 发出错误并关闭通道。在 IOStream 的套接字对象 s3 中,错误设置为例如 ECONNREFUSED。
如何传播此错误以告诉客户端 s1 发生了什么。本质上,我想用错误(或任何其他错误)关闭套接字 s2 以指示发生了什么。它不一定是 ECONNREFUSED,因为在设置通道时会上升,并且这已经在 s1 和 s2 之间发生。
谢谢马库斯