ソースを参照

Replaced websocketsharp.core package with source code direct from github (3rdpartylibs)
This is to try and track down the instability when uploading large files (ie photos)

frogsoftware 1 年間 前
コミット
e227b49c92

+ 1 - 1
InABox.Client.RPC/InABox.Client.RPC.csproj

@@ -8,12 +8,12 @@
     </PropertyGroup>
     </PropertyGroup>
 
 
     <ItemGroup>
     <ItemGroup>
+      <ProjectReference Include="..\..\3rdpartylibs\websocket-sharp-master\websocket-sharp-standard\websocket-sharp-standard.csproj" />
       <ProjectReference Include="..\InABox.RPC.Shared\InABox.RPC.Shared.csproj" />
       <ProjectReference Include="..\InABox.RPC.Shared\InABox.RPC.Shared.csproj" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup>
     <ItemGroup>
       <PackageReference Include="H.Pipes" Version="2.0.51" />
       <PackageReference Include="H.Pipes" Version="2.0.51" />
-      <PackageReference Include="websocketsharp.core" Version="1.0.0" />
     </ItemGroup>
     </ItemGroup>
 
 
 </Project>
 </Project>

+ 1 - 0
InABox.Server/InABox.Server.csproj

@@ -14,6 +14,7 @@
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup>
     <ItemGroup>
+        <ProjectReference Include="..\..\3rdpartylibs\websocket-sharp-master\websocket-sharp-standard\websocket-sharp-standard.csproj" />
         <ProjectReference Include="..\InABox.Configuration\InABox.Configuration.csproj" />
         <ProjectReference Include="..\InABox.Configuration\InABox.Configuration.csproj" />
         <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
         <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
         <ProjectReference Include="..\InABox.Database\InABox.Database.csproj" />
         <ProjectReference Include="..\InABox.Database\InABox.Database.csproj" />

+ 14 - 6
InABox.Server/RPC/Transports/Socket/RPCServerSocketTransport.cs

@@ -24,12 +24,20 @@ namespace InABox.Rpc
             Certificate = certificate;
             Certificate = certificate;
             
             
             _server = new WebSocketServer(port, Certificate != null);
             _server = new WebSocketServer(port, Certificate != null);
-            _server.SslConfiguration.ServerCertificate = Certificate;
-            _server.SslConfiguration.ClientCertificateRequired = false;
-            _server.SslConfiguration.CheckCertificateRevocation = false;
-            _server.SslConfiguration.ClientCertificateValidationCallback = WSSCallback;
-            _server.SslConfiguration.EnabledSslProtocols = SslProtocols.Tls12;
-            _server?.AddWebSocketService("/", () => new RpcServerSocketConnection() { Transport = this } );
+            if (Certificate != null)
+            {
+                _server.SslConfiguration.ServerCertificate = Certificate;
+                _server.SslConfiguration.ClientCertificateRequired = false;
+                _server.SslConfiguration.CheckCertificateRevocation = false;
+                _server.SslConfiguration.ClientCertificateValidationCallback = WSSCallback;
+                _server.SslConfiguration.EnabledSslProtocols = SslProtocols.Tls12;
+            }
+
+            _server?.AddWebSocketService<RpcServerSocketConnection>("/", (connection) =>
+            {
+                connection.Transport = this;
+                //new RpcServerSocketConnection() { Transport = this };
+            });
         }
         }
 
 
         private bool WSSCallback(object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslpolicyerrors)
         private bool WSSCallback(object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslpolicyerrors)

+ 0 - 1
inabox.client.ipc/InABox.Client.IPC.csproj

@@ -10,7 +10,6 @@
     <PackageReference Include="H.Formatters.Ceras" Version="2.0.42" />
     <PackageReference Include="H.Formatters.Ceras" Version="2.0.42" />
     <PackageReference Include="H.Pipes" Version="2.0.51" />
     <PackageReference Include="H.Pipes" Version="2.0.51" />
     <PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
     <PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
-    <PackageReference Include="websocketsharp.core" Version="1.0.0" />
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>

+ 1 - 4
inabox.client.websocket/InABox.Client.WebSocket.csproj

@@ -6,10 +6,7 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="websocketsharp.core" Version="1.0.0" />
-  </ItemGroup>
-
-  <ItemGroup>
+    <ProjectReference Include="..\..\3rdpartylibs\websocket-sharp-master\websocket-sharp-standard\websocket-sharp-standard.csproj" />
     <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
     <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
     <ProjectReference Include="..\inabox.websocket.shared\InABox.WebSocket.Shared.csproj" />
     <ProjectReference Include="..\inabox.websocket.shared\InABox.WebSocket.Shared.csproj" />
   </ItemGroup>
   </ItemGroup>

+ 1 - 1
inabox.client.websocket/WebSocketClient.cs

@@ -68,7 +68,7 @@ namespace InABox.Client.WebSocket
             }
             }
         }
         }
 
 
-        private void Socket_OnError(object? sender, WebSocketSharp.ErrorEventArgs e)
+        private void Socket_OnError(object? sender, ErrorEventArgs e)
         {
         {
             Logger.Send(LogType.Error, "", $"WebSocket Error: {e.Message}");
             Logger.Send(LogType.Error, "", $"WebSocket Error: {e.Message}");
         }
         }

+ 1 - 4
inabox.server.websocket/InABox.Server.WebSocket.csproj

@@ -7,10 +7,7 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="websocketsharp.core" Version="1.0.0" />
-  </ItemGroup>
-
-  <ItemGroup>
+    <ProjectReference Include="..\..\3rdpartylibs\websocket-sharp-master\websocket-sharp-standard\websocket-sharp-standard.csproj" />
     <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
     <ProjectReference Include="..\InABox.Core\InABox.Core.csproj" />
     <ProjectReference Include="..\InABox.WebSocket.Shared\InABox.WebSocket.Shared.csproj" />
     <ProjectReference Include="..\InABox.WebSocket.Shared\InABox.WebSocket.Shared.csproj" />
   </ItemGroup>
   </ItemGroup>

+ 14 - 7
inabox.server.websocket/WebSocketServer.cs

@@ -48,11 +48,15 @@ namespace InABox.Server.WebSocket
 
 
     public class PushHandler : WebSocketBehavior
     public class PushHandler : WebSocketBehavior
     {
     {
-        private PushState PushState;
+        public PushState State { get; set; }
 
 
+        public PushHandler()
+        {
+        }
+        
         public PushHandler(PushState state)
         public PushHandler(PushState state)
         {
         {
-            PushState = state;
+            State = state;
         }
         }
 
 
         protected override void OnOpen()
         protected override void OnOpen()
@@ -64,8 +68,8 @@ namespace InABox.Server.WebSocket
         {
         {
             Logger.Send(LogType.Information, "", $"WebSocket client disconnected");
             Logger.Send(LogType.Information, "", $"WebSocket client disconnected");
 
 
-            var sessionID = PushState.SessionMap.Where(x => x.Value.ID == ID).FirstOrDefault().Key;
-            PushState.SessionMap.TryRemove(sessionID, out var session);
+            var sessionID = State.SessionMap.FirstOrDefault(x => x.Value.ID == ID).Key;
+            State.SessionMap.TryRemove(sessionID, out var session);
         }
         }
 
 
         protected override void OnError(WebSocketSharp.ErrorEventArgs e)
         protected override void OnError(WebSocketSharp.ErrorEventArgs e)
@@ -76,8 +80,8 @@ namespace InABox.Server.WebSocket
         private void DoInitial(InitialMessage initial)
         private void DoInitial(InitialMessage initial)
         {
         {
             var newSession = new Session(ID, initial.SessionID, initial.Platform);
             var newSession = new Session(ID, initial.SessionID, initial.Platform);
-            PushState.SessionMap[initial.SessionID] = newSession;
-            PushState.Poll(newSession);
+            State.SessionMap[initial.SessionID] = newSession;
+            State.Poll(newSession);
         }
         }
 
 
         protected override void OnMessage(MessageEventArgs e)
         protected override void OnMessage(MessageEventArgs e)
@@ -103,7 +107,10 @@ namespace InABox.Server.WebSocket
         public WebSocketServer(int port)
         public WebSocketServer(int port)
         {
         {
             Server = new InternalServer(IPAddress.Any, port);
             Server = new InternalServer(IPAddress.Any, port);
-            Server.AddWebSocketService("/push", NewPush);
+            Server.AddWebSocketService<PushHandler>("/push", (push) =>
+            {
+                push.State = PushState;
+            });
 
 
             PushState.OnPoll += PushState_Poll;
             PushState.OnPoll += PushState_Poll;
         }
         }

+ 1 - 1
inabox.wpf/InABox.Wpf.csproj

@@ -129,7 +129,7 @@
         <PackageReference Include="ColorHelper" Version="1.8.0" />
         <PackageReference Include="ColorHelper" Version="1.8.0" />
         <PackageReference Include="ControlzEx" Version="5.0.2" />
         <PackageReference Include="ControlzEx" Version="5.0.2" />
         <PackageReference Include="Extended.Wpf.Toolkit" Version="4.4.0" />
         <PackageReference Include="Extended.Wpf.Toolkit" Version="4.4.0" />
-        <PackageReference Include="FastReport.Net.Pro" Version="2023.1.13" />
+        <PackageReference Include="FastReport.Net.Pro" Version="2023.2.23" />
         <PackageReference Include="GhostScript.NetCore" Version="1.0.1" />
         <PackageReference Include="GhostScript.NetCore" Version="1.0.1" />
         <PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.0.1" />
         <PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.0.1" />
         <PackageReference Include="Syncfusion.Grid.WPF" Version="20.2.0.46" />
         <PackageReference Include="Syncfusion.Grid.WPF" Version="20.2.0.46" />