lith 4 年 前
コミット
2d9c3f0560

+ 5 - 4
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Fast/DeliveryConnection.cs

@@ -188,11 +188,11 @@ namespace Sers.CL.Socket.Iocp.Mode.Fast
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         unsafe byte[] ByteDataArrayToBytes(ByteData[] byteDataArray, int arrayCount)
         {
-            //(x.1)get count
             int sumCount = 0;
-
             int curCount;
             int arrayIndex;
+
+            //(x.1)get count
             for (arrayIndex = 0; arrayIndex < arrayCount; arrayIndex++)
             {
                 var byteData = byteDataArray[arrayIndex];
@@ -228,9 +228,10 @@ namespace Sers.CL.Socket.Iocp.Mode.Fast
                         {
                             Buffer.MemoryCopy(pSource + item.Offset, pTarget + curCount, item.Count, item.Count);
                         }
+                        curCount += item.Count;
                     }
-                    _securityManager?.Encryption(new ArraySegment<byte>(bytes, curCount, curLength));
-                    curCount += curLength;
+                    _securityManager?.Encryption(new ArraySegment<byte>(bytes, curCount- curLength, curLength));
+                    
                 }
             }
             return bytes;

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

@@ -137,7 +137,7 @@
 
   "PressureTest": {
     "clientCount": 1,
-    "requestThreadCount": 1,
+    "requestThreadCount": 10000,
     "messageThreadCount": 0,
     "msgLen": 1
   }

+ 4 - 6
dotnet/Library/Sers/Sers.CL/Test/CommunicationManage/CmServer/Program.cs

@@ -1,12 +1,10 @@
 using System;
-using System.Collections.Generic;
 using System.Threading;
 using CLServer.Statistics;
 using Sers.Core.CL.CommunicationManage;
 using Sers.Core.CL.MessageOrganize;
-using Sers.Core.Module.Message;
-
 using Vit.Core.Module.Log;
+using Vit.Core.Util.Pipelines;
 
 namespace CLServer
 {
@@ -28,14 +26,14 @@ namespace CLServer
             cm.conn_OnGetMessage = (conn, msg) =>
             {
                 qpsInfo.IncrementRequest();
-                conn.SendMessageAsync(new Vit.Core.Util.Pipelines.ByteData(msg));
+                conn.SendMessageAsync(new ByteData(msg));
             };
 
 
-            cm.conn_OnGetRequest = (IOrganizeConnection  conn, Object sender, ApiMessage apiRequestMessage, Action<object, Vit.Core.Util.Pipelines.ByteData> callback) =>
+            cm.conn_OnGetRequest = (IOrganizeConnection  conn, Object sender, ArraySegment<byte> apiRequest, Action<object, Vit.Core.Util.Pipelines.ByteData> callback) =>
             {
                 qpsInfo.IncrementRequest();
-                callback(sender, apiRequestMessage.Package());
+                callback(sender, new ByteData(apiRequest));
             };
 
             cm.Conn_OnConnected = (conn) =>

+ 1 - 1
dotnet/Library/Sers/Sers.CL/Test/MessageDelivery/DeliveryClient/Program.cs

@@ -70,7 +70,7 @@ namespace DeliveryTest
         static int port = 4501;
 
         static int thread = 1;
-        static int msgLen = 10;
+        static int msgLen = 1;
 
 
 

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/CommunicationManage/CommunicationManageServer.cs

@@ -51,7 +51,7 @@ namespace Sers.Core.CL.CommunicationManage
         /// 会在内部线程中被调用 
         /// (conn,sender,requestData, callback)
         /// </summary>
-        public Action<IOrganizeConnection, object, ApiMessage, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest { get; set; }
+        public Action<IOrganizeConnection, object, ArraySegment<byte>, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest { get; set; }
 
         public Action<IOrganizeConnection, ArraySegment<byte>> conn_OnGetMessage { get; set; }
 

+ 2 - 2
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/OrganizeServer.cs

@@ -117,7 +117,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
         /// <summary>
         /// 会在内部线程中被调用 
         /// </summary>
-        public Action<IOrganizeConnection, object, ApiMessage, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest
+        public Action<IOrganizeConnection, object, ArraySegment<byte>, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest
         {
             set
             {
@@ -126,7 +126,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
                     var deliveryConn = organizeConn.GetDeliveryConn();
                     if (deliveryConn.state == DeliveryConnState.certified)
                     {
-                        value(organizeConn, sender, new ApiMessage(requestData), callback);
+                        value(organizeConn, sender, requestData, callback);
                         return;
                     }
 

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/IOrganizeServer.cs

@@ -17,7 +17,7 @@ namespace Sers.Core.CL.MessageOrganize
         /// 会在内部线程中被调用 
         /// (conn,sender,requestData, callback)
         /// </summary>
-        Action<IOrganizeConnection, object, ApiMessage, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest { set; }
+        Action<IOrganizeConnection, object, ArraySegment<byte>, Action<object, Vit.Core.Util.Pipelines.ByteData>> conn_OnGetRequest { set; }
 
         Action<IOrganizeConnection, ArraySegment<byte>> conn_OnGetMessage { set; }
     }

+ 9 - 0
dotnet/ServiceCenter/Sers.ServiceCenter/Sers.ServiceCenter/ApiCenter/ApiCenterService.cs

@@ -15,6 +15,15 @@ namespace Sers.ServiceCenter.ApiCenter
     public abstract class ApiCenterService
     {
 
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        public void CallApiAsync(IOrganizeConnection conn, Object sender, ArraySegment<byte> apiRequest, Action<object, Vit.Core.Util.Pipelines.ByteData> callback)
+        {
+            CommunicationManageServer.CurConn = conn;
+
+            CallApiAsync(new ApiMessage(apiRequest), sender, callback);
+        }
+
+
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public void CallApiAsync(IOrganizeConnection conn, Object sender, ApiMessage apiRequestMessage, Action<object, Vit.Core.Util.Pipelines.ByteData> callback)
         {