using EVCB_OCPP.Packet.Messages.Basic; using SuperSocket.SocketBase; using SuperWebSocket; using System; namespace OCPPServer.Protocol { public class ClientData : WebSocketSession<ClientData> { /// <summary> /// 根據unique id來儲存.取出OCPP Request /// </summary> public Queue queue = new Queue(); public EVCB_OCPP20.Packet.Messages.Basic.Queue queue20 = new EVCB_OCPP20.Packet.Messages.Basic.Queue(); public bool IsCheckIn { set; get; } public string ChargeBoxId { set; get; } public Guid CustomerId { get; set; } public string MachineId { set; get; } public bool ISOCPP20 { set; get; } public bool ResetSecurityProfile { set; get; } public string CustomerName { get; set; } public delegate void OCPPClientDataEventHandler<ClientData, String>(ClientData clientdata, String msg); public event OCPPClientDataEventHandler<ClientData, String> m_ReceiveData; public ClientData() { IsCheckIn = false; ChargeBoxId = SessionID; MachineId = SessionID; } /// <summary> /// Sends the raw binary data to client. /// </summary> /// <param name="data">The data.</param> /// <param name="offset">The offset.</param> /// <param name="length">The length.</param> public void SendRawData(byte[] data, int offset, int length) { base.Send(data, offset, length); } //receive data event trigger public void ReceiveData(ClientData clientdata, string msg) { if (m_ReceiveData != null) m_ReceiveData(clientdata, msg); } /// <summary> /// Called when [session closed]. /// </summary> /// <param name="reason">The reason.</param> protected override void OnSessionClosed(CloseReason reason) { } } }