|
@@ -56,7 +56,7 @@ namespace WingCloudServer.Plugin
|
|
|
private const string _taiwan = "台湾";
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 初始��
|
|
|
+ /// 初始�
|
|
|
/// </summary>
|
|
|
public override void Load(JsonRpcClientPool jsonRpcClientPool)
|
|
|
{
|
|
@@ -65,9 +65,9 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 前处��
|
|
|
+ /// 前处�
|
|
|
/// </summary>
|
|
|
- /// <param name="context">上下��/param>
|
|
|
+ /// <param name="context">上下�/param>
|
|
|
/// <param name="requestData">请求参数</param>
|
|
|
/// <returns></returns>
|
|
|
public PluginProcessResult PreProcess(IJsonRpcHttpContext context, byte[] requestData)
|
|
@@ -79,9 +79,9 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 后处��
|
|
|
+ /// 后处�
|
|
|
/// </summary>
|
|
|
- /// <param name="context">上下��/param>
|
|
|
+ /// <param name="context">上下�/param>
|
|
|
/// <param name="responseData">响应参数</param>
|
|
|
/// <returns></returns>
|
|
|
public PluginProcessResult PostProcess(IJsonRpcHttpContext context, byte[] responseData)
|
|
@@ -98,7 +98,7 @@ namespace WingCloudServer.Plugin
|
|
|
.Where(x => !string.IsNullOrEmpty(x.Name) && !string.IsNullOrEmpty(x.ServerUrl))?.ToList();
|
|
|
var fasterServerInfo = new ServerInfoDTO();
|
|
|
var parallelOption = new ParallelOptions() { MaxDegreeOfParallelism = 4 };
|
|
|
- //本地IP段检��
|
|
|
+ //本地IP段检�
|
|
|
Parallel.ForEach(serverInformationList, parallelOption, (item, parallelLoopState) =>
|
|
|
{
|
|
|
if (item.AssignClientIPList != null && item.AssignClientIPList.Any())
|
|
@@ -122,7 +122,7 @@ namespace WingCloudServer.Plugin
|
|
|
{
|
|
|
//找到,直接返回
|
|
|
list.Add(fasterServerInfo);
|
|
|
- //添加其他服务��
|
|
|
+ //添加其他服务�
|
|
|
var otherServerList = serverInformationList.FindAll(c => c.Name != fasterServerInfo.Name).Select(c => new ServerInfoDTO()
|
|
|
{
|
|
|
Name = c.Name,
|
|
@@ -132,7 +132,7 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
else if (_isUsePositionService)//是否开启第三方定位服务
|
|
|
{
|
|
|
- //没找到,定位,计算,更新,返��
|
|
|
+ //没找到,定位,计算,更新,返�
|
|
|
var locationInfo = GetIpLocationInfo(ipAddress);
|
|
|
if (locationInfo.ad_info != null && !string.IsNullOrEmpty(locationInfo.ad_info.nation))
|
|
|
{
|
|
@@ -148,7 +148,7 @@ namespace WingCloudServer.Plugin
|
|
|
Host = c.ServerUrl,
|
|
|
})?.FirstOrDefault() ?? new ServerInfoDTO();
|
|
|
list.Add(fastServerInfo);
|
|
|
- //添加其他服务��
|
|
|
+ //添加其他服务�
|
|
|
var otherServerList = serverInformationList.FindAll(c => c.Name != fastServerInfo.Name).Select(c => new ServerInfoDTO()
|
|
|
{
|
|
|
Name = c.Name,
|
|
@@ -161,7 +161,7 @@ namespace WingCloudServer.Plugin
|
|
|
var extendList = new List<ServerInfoExtend>();
|
|
|
foreach (var item in serverInformationList)
|
|
|
{
|
|
|
- //计算最短距��
|
|
|
+ //计算最短距�
|
|
|
double beelineDistanceTemp = GetDistance(locationInfo.location.lat, locationInfo.location.lng, Convert.ToDouble(item.Lat), Convert.ToDouble(item.Lng));
|
|
|
var extendInfo = new ServerInfoExtend()
|
|
|
{
|
|
@@ -182,7 +182,7 @@ namespace WingCloudServer.Plugin
|
|
|
else
|
|
|
{
|
|
|
//啥也没找到,默认优先香港服务器[主服务器]
|
|
|
- list = serverInformationList.OrderBy(c => c.IsMaster).Select(e => new ServerInfoDTO()
|
|
|
+ list = serverInformationList.OrderByDescending(c => c.IsMaster).Select(e => new ServerInfoDTO()
|
|
|
{
|
|
|
Name = e.Name,
|
|
|
Host = e.ServerUrl,
|
|
@@ -218,13 +218,13 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 计算两点位置的距离,返回两点的距离,单位 ��
|
|
|
- /// 该公式为GOOGLE提供,误差小��.2��
|
|
|
+ /// 计算两点位置的距离,返回两点的距离,单位 �
|
|
|
+ /// 该公式为GOOGLE提供,误差小�.2�
|
|
|
/// </summary>
|
|
|
- /// <param name="lat1">第一点纬��/param>
|
|
|
- /// <param name="lng1">第一点经��/param>
|
|
|
- /// <param name="lat2">第二点纬��/param>
|
|
|
- /// <param name="lng2">第二点经��/param>
|
|
|
+ /// <param name="lat1">第一点纬�/param>
|
|
|
+ /// <param name="lng1">第一点经�/param>
|
|
|
+ /// <param name="lat2">第二点纬�/param>
|
|
|
+ /// <param name="lng2">第二点经�/param>
|
|
|
/// <returns></returns>
|
|
|
public double GetDistance(double lat1, double lng1, double lat2, double lng2)
|
|
|
{
|
|
@@ -249,7 +249,7 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 获取ip的定位信��
|
|
|
+ /// 获取ip的定位信息
|
|
|
/// </summary>
|
|
|
/// <param name="d"></param>
|
|
|
/// <returns></returns>
|
|
@@ -272,13 +272,13 @@ namespace WingCloudServer.Plugin
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
//异常处理
|
|
|
- Logger.WriteLineError($"GetIpLocationInfo err:{ex},{ex.StackTrace}");
|
|
|
+ Logger.WriteLineError($@"GetIpLocationInfo err:{ex}");
|
|
|
}
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 处理http GET请求,返回数��
|
|
|
+ /// 处理http GET请求,返回数�
|
|
|
/// </summary>
|
|
|
/// <param name="url">请求的url地址</param>
|
|
|
/// <returns>http GET成功后返回的数据,失败抛WebException异常</returns>
|
|
@@ -290,20 +290,20 @@ namespace WingCloudServer.Plugin
|
|
|
HttpWebRequest request = null;
|
|
|
HttpWebResponse response = null;
|
|
|
|
|
|
- //请求url以获取数��
|
|
|
+ //请求url以获取数�
|
|
|
try
|
|
|
{
|
|
|
//设置最大连接数
|
|
|
ServicePointManager.DefaultConnectionLimit = 40;
|
|
|
|
|
|
/***************************************************************
|
|
|
- * 下面设置HttpWebRequest的相关属��
|
|
|
+ * 下面设置HttpWebRequest的相关属�
|
|
|
* ************************************************************/
|
|
|
request = (HttpWebRequest)WebRequest.Create(url);
|
|
|
|
|
|
request.Method = "GET";
|
|
|
|
|
|
- //获取服务器返��
|
|
|
+ //获取服务器返�
|
|
|
response = (HttpWebResponse)request.GetResponse();
|
|
|
|
|
|
//获取HTTP返回数据
|
|
@@ -332,7 +332,7 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 腾讯云定位响应实��
|
|
|
+ /// 腾讯云定位响应实�
|
|
|
/// </summary>
|
|
|
class IPServiceGuide
|
|
|
{
|
|
@@ -353,7 +353,7 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 腾讯云定位响应结��
|
|
|
+ /// 腾讯云定位响应结�
|
|
|
/// </summary>
|
|
|
class IPServiceResult
|
|
|
{
|
|
@@ -363,7 +363,7 @@ namespace WingCloudServer.Plugin
|
|
|
public string ip { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 经纬度信��
|
|
|
+ /// 经纬度信�
|
|
|
/// </summary>
|
|
|
public IPServiceLocationResult location { get; set; }
|
|
|
|
|
@@ -390,7 +390,7 @@ namespace WingCloudServer.Plugin
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 腾讯云定位地区信��
|
|
|
+ /// 腾讯云定位地区信�
|
|
|
/// </summary>
|
|
|
class IPServiceNationResult
|
|
|
{
|
|
@@ -426,7 +426,7 @@ namespace WingCloudServer.Plugin
|
|
|
class ServerInfoExtend : ServerInfoDTO
|
|
|
{
|
|
|
/// <summary>
|
|
|
- /// 最短距��
|
|
|
+ /// 最短距�
|
|
|
/// </summary>
|
|
|
public double BeelineDistance { get; set; }
|
|
|
}
|