Robert 1 anno fa
parent
commit
8513245224

+ 12 - 1
EVCB_OCPP.WSServer/Service/WsService/WebsocketService.cs

@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Primitives;
+using System.Net;
 using System.Net.WebSockets;
 using System.Text;
 
@@ -57,9 +58,19 @@ public class WebsocketService<T> where T : WsSession
         data.UriScheme = context?.Request?.Scheme;
         data.AuthHeader = context?.Request?.Headers?.Authorization;
         data.SessionID = context.TraceIdentifier;
-        data.Endpoint = null;
         data.Origin = context.Request.Headers.Origin;
 
+        try
+        {
+            var ipaddress = context.Connection.RemoteIpAddress;
+            var port = context.Connection.RemotePort;
+            data.Endpoint = new IPEndPoint(ipaddress, port);
+        }
+        catch
+        {
+            data.Endpoint = null;
+        }
+
         var validated = ValidateHandshake == null ? false : await ValidateHandshake(data);
 
         if (!validated)

+ 2 - 1
EVCB_OCPP.WSServer/Service/WsService/WsSession.cs

@@ -3,6 +3,7 @@ using Microsoft.Extensions.Primitives;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Net;
 using System.Net.WebSockets;
 using System.Text;
 using System.Threading.Tasks;
@@ -20,7 +21,7 @@ namespace EVCB_OCPP.WSServer.Service.WsService
         public string UriScheme { get; set; }
         public string AuthHeader { get; set; }
         public string SessionID { get; set; }
-        public Endpoint Endpoint { get; internal set; }
+        public IPEndPoint Endpoint { get; internal set; }
         public StringValues Origin { get; internal set; }
         public DateTime LastActiveTime { get; set; }