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(); } } }