【问题标题】:Mobile device reconnecting to the same TCP server behind Load Balancer移动设备重新连接到负载均衡器后面的同一 TCP 服务器
【发布时间】:2018-12-12 08:16:53
【问题描述】:

我正在开发一个应用程序,它既不使用 HTTP 也不使用 HTTPS,而是使用 TCP 上的自定义二进制协议。例如,游戏程序。

假设有智能手机 A、负载均衡器 L(例如 AWS ELB)和 TCP 套接字服务器机器 X 和 Y。

A 通过连接 L 连接到 X 或 Y。由于协议不是 HTTP,L 将连接随机转发到 X 或 Y。我们假设 A 连接到 X。 现在,A 将网络从 Wifi 更改为 Cellular。 A的IP地址被更改。 A 再次连接到 X 或 Y。 L 再次将连接随机转发到 X 或 Y。不能保证 A 总是连接到 X。

但是,我想让 A 始终连接到同一个服务器 X,即使 A 的 IP 地址已更改。我可以这样做吗?例如,A 在发送其他数据之前,在 TCP 连接流中向服务器发送代理或 XFF 信息(伪装方式)?如果可以,请告诉我指南或文档 URL。

我只是想让A在IP更改后重新连接到同一台服务器。指定或严格绑定到 X 或 Y 不是目标。

同时,我查看了这个页面,但我还没有找到答案。

【问题讨论】:

  • 如果它通过负载均衡器,你必须让它完成它的工作。
  • 能够执行此类操作的唯一方法是通过会话粘性,请查看此页面:docs.aws.amazon.com/elasticloadbalancing/latest/classic/… 但如果您打算更改 IP 地址,您将无法获得与粘性提供的效果相同。

标签: amazon-web-services amazon-elb


【解决方案1】:

我找到了解决办法:

  1. 显示每个 TCP 服务器的公共端点。 (Link)
  2. 在第一次连接时,TCP 服务器将其公共端点数据提供给客户端。
  3. 在重新连接时,客户端连接到 TCP 服务器,端点在前一阶段给出,而不是负载平衡器端点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多