public static void SendEvent(string sessionNodeId, RequestEventEnum eventName, Entity.CallBase call)
        {
            ClientRequest clientRequest = new ClientRequest();
            clientRequest.SessionNodeId = sessionNodeId;
            clientRequest.EventNameEnum = eventName;
            clientRequest.Call = call;

            SendEvent(clientRequest);
        }
        public static void SendEvent(ClientRequest clientRequest)
        {
            //send request to client via nojejs/socket.io
            using (SocketIOClient.Client socket = Helper.SocketIo.GetClient())
            {
                try
                {
                    //hook event handlers
                    socket.Opened += socket_Opened;
                    socket.Message += socket_OnMessage;
                    socket.SocketConnectionClosed += socket_SocketConnectionClosed;
                    socket.Error += socket_Error;

                    //open the socket connections
                    socket.Connect();

                    //ensure a connection has been established
                    int iCnt = 0;
                    while (!socket.IsConnected && iCnt < 5)
                    {
                        Thread.Sleep(50);
                        iCnt++;
                    }

                    if (!socket.IsConnected)
                        if (log.IsDebugEnabled) { log.Debug("SendEvent.SocketError.Unable to connect"); }

                    if (log.IsDebugEnabled) { log.Debug("SendEvent.clientRequestInternal." + (clientRequest == null ? "null" : clientRequest.ToJsonString())); }

                    //send client request
                    socket.Emit("clientRequestInternal", clientRequest);
                }
                finally
                {
                    socket.Close();
                }
            }
        }