lith преди 3 години
родител
ревизия
c4d25acec9

+ 4 - 1
dotnet/Library/Sers/Sers.CL/Test/CommunicationManage/CmClient/appsettings.json

@@ -120,7 +120,10 @@
 
           /* (x.2) config */
           /* 服务端地址(默认为 "ws://127.0.0.1:4503") */
-          "host": "ws://127.0.0.1:4503"
+          "host": "ws://127.0.0.1:4503",
+
+          /* 是否校验服务端证书(使用wss时有效),default:true  */
+          "//validateRemoteCertificate": false
 
         },
 

+ 7 - 1
dotnet/Library/Sers/Sers.CL/Test/CommunicationManage/CmServer/appsettings.json

@@ -116,7 +116,13 @@
 
           /* (x.2) config */
           /* 服务端地址(默认为 "ws://0.0.0.0:4503") */
-          "host": "ws://0.0.0.0:4503"
+          "host": "ws://0.0.0.0:4503",
+
+          /* SSL证书(若使用wss则必须指定证书) */
+          "//certificate": {
+            "filePath": "Data/ssl.pfx",
+            "password": ""
+          }
 
         },
 

+ 22 - 0
dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/DeliveryClient.cs

@@ -5,6 +5,7 @@ using System.Net.WebSockets;
 using System.Threading;
 using Sers.Core.CL.MessageDelivery;
 using Vit.Core.Module.Log;
+using Vit.Extensions.ObjectExt;
 
 namespace Sers.CL.WebSocket
 {
@@ -27,13 +28,34 @@ namespace Sers.CL.WebSocket
         public string host = "ws://127.0.0.1:4503";
 
 
+        /// <summary>
+        /// 是否校验服务端证书(使用wss时有效),default:true
+        /// </summary>
+        public bool? validateRemoteCertificate;
+
         public bool Connect()
         {
             try
             {
                 Logger.Info("[CL.DeliveryClient] WebSocket,connecting", new { host });
 
+
                 ClientWebSocket _webSocket = new ClientWebSocket();
+
+                if (validateRemoteCertificate == false)
+                {
+                    try
+                    {
+                        System.Net.Security.RemoteCertificateValidationCallback callback = delegate { return true; };
+                        _webSocket.Options.SetProperty("RemoteCertificateValidationCallback", callback);
+                    }
+                    catch (Exception ex)
+                    {
+                        Logger.Error(ex);
+                    }
+                }
+
+
                 _webSocket.ConnectAsync(new Uri(host), new CancellationToken()).GetAwaiter().GetResult();
                 _conn.Init(_webSocket);                
 

+ 2 - 1
dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/OrganizeClientBuilder.cs

@@ -20,7 +20,8 @@ namespace Sers.CL.WebSocket
             }
             #endregion
 
-            delivery.host = config["host"].ConvertToString() ?? delivery.host;
+            delivery.host = config["host"]?.ConvertToString() ?? delivery.host;
+            delivery.validateRemoteCertificate = config["validateRemoteCertificate"]?.Deserialize<bool?>() ?? delivery.validateRemoteCertificate;
 
 
             organizeList.Add(new OrganizeClient(delivery, config));

+ 1 - 1
dotnet/Library/Vit/Vit.Core/Vit.Core/Extensions/ObjectExt/ObjectExtExtensions.cs

@@ -73,7 +73,7 @@ namespace Vit.Extensions.ObjectExt
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static void SetProperty(this object instance, string propertyName, object value)
         {
-            instance.GetType().GetField(propertyName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).SetValue(instance, value);            
+            instance.GetType().GetProperty(propertyName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).SetValue(instance, value);            
         }
 
         #endregion

+ 7 - 6
dotnet/ServiceCenter/App.ServiceCenter/appsettings.json

@@ -126,21 +126,22 @@
 
         {
           // WebSocket
-          /* (x.1) type - Iocp */
+          /* (x.1) type */
           /* 在此Assembly中查找builder */
           "assemblyFile": "Sers.CL.WebSocket.dll",
           /* the class of builder in assemblyFile  */
           //"className": "Sers.CL.WebSocket.OrganizeServerBuilder",
 
+
+          /* (x.2) config */
+          /* 服务端地址(默认为 "ws://0.0.0.0:4503") */
+          "host": "ws://0.0.0.0:4503",
+
           /* SSL证书(若使用wss则必须指定证书) */
           "//certificate": {
             "filePath": "Data/ssl.pfx",
             "password": ""
-          },
-
-          /* (x.2) config */
-          /* 服务端地址(默认为 "ws://0.0.0.0:4503") */
-          "host": "ws://0.0.0.0:4503"
+          }
         },
 
         {

+ 4 - 1
dotnet/ServiceStation/Demo/SersLoader/Did.SersLoader.Demo/appsettings.json

@@ -141,7 +141,10 @@
 
           /* (x.2) config */
           /* 服务端地址(默认为 "ws://127.0.0.1:4503") */
-          "host": "ws://127.0.0.1:4503"
+          "host": "ws://127.0.0.1:4503",
+
+          /* 是否校验服务端证书(使用wss时有效),default:true  */
+          "//validateRemoteCertificate": false
 
         },
 

+ 4 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/appsettings.json

@@ -120,7 +120,10 @@
 
           /* (x.2) config */
           /* 服务端地址(默认为 "ws://127.0.0.1:4503") */
-          "host": "ws://127.0.0.1:4503"
+          "host": "ws://127.0.0.1:4503",
+
+          /* 是否校验服务端证书(使用wss时有效),default:true  */
+          "//validateRemoteCertificate": false
 
         },