gpt4 book ai didi

javascript - Node.js:从用户位置选择 DigitalOcean 城市

转载 作者:行者123 更新时间:2023-12-03 06:58:46 27 4
gpt4 key购买 nike

我正在将 Node.js 与我的 HTTP 服务器结合使用。我希望每个连接的用户都使用 WebSocket 连接到实时游戏服务器,并且我希望他们连接到距离其位置最近的服务器。我正在使用 DigitalOcean,因此以下是可用城市的列表:

  • 纽约
  • 阿姆斯特丹
  • 旧金山
  • 新加坡
  • 伦敦
  • 法兰克福
  • 多伦多

我需要使用已连接用户的 IP 地址的位置并找到最近的城市,以便可以连接到最近的服务器。

我想出了一些方法来做到这一点:

  • 获取国家/地区列表并将其划分为区域组,每个区域对应不同的 DigitalOcean 城市。
  • 获取用户的大致经度/纬度位置,并查看到每个城市的每个经度/纬度位置的距离,并选择最小的距离。

以上两种方法哪种更好?我该如何使用 Node.js 和 NPM 做得更好?还有其他更好的选择吗?

最佳答案

我认为解决这个问题的最佳解决方案是使用 Anycast 或类似的解决方案:重定向多个方向的 Ip。

有关选播的更多信息

任播是一种从多个位置通告相同 IP 前缀的网络技术。然后,网络根据路由协议(protocol)成本以及可能的广告服务器的“健康状况”来决定将用户请求路由到哪个位置。

根据选播的实现方式,它还可以提供一定程度的高可用性。如果任播路由的通告以某种健康检查为条件(例如,在本例中对众所周知的域进行 DNS 查询),那么一旦服务器出现故障,其路由就可以被删除。一旦网络重新收敛,用户请求将无缝转发到下一个最近的 DNS 实例,无需任何手动干预或重新配置。

链接

关于javascript - Node.js:从用户位置选择 DigitalOcean 城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com