如上图所示:Client A是我们客户的系统采用Socekt协议跟我们的系统SystemA相连接;为了能够在不中断Client A的服务的情况下,对System A进行升级维护,我们在System A前面加了OpenResty, 希望升级方法如下:- 部署升级之后的System A New;- 每一个Socket请求的报文,都包含一个“client_version"的字段,所以,为了验证升级后的系统,我们跟客户约定,推送Client的升级版本(Client A)给小规模用户,升级后的Client A New连接到我们的OpenResty,需要redirect到 System A NEW- 小规模用户验证满意之后,修改OpenResty的redirect规则,将Client A也 redirect到 System A New,下线System A遇到的问题是:如果Client A采用HTTP协议,那么使用openresty来通过HTTP Header中的版本号来判断,并重定向到指定目标很容易;可是现在Client A采用的是Socket协议,那么怎么来解析报文中的client_version字段的值呢?升级的问题:如果Client A采用的是Hessian(https://en.wikipedia.org/wiki/Hessian)协议呢?又该如何解决?先谢过大家!-- Thanks,Neo --