public void RegisterService() { _endpoint = new EndpointAddress($"net.tcp://{_wcfIP}:{_wcfPort}/TradingService"); Initialize(); var serviceId = Guid.NewGuid().ToString(); try { var registerUCProcessorRequest = new RegisterUCProcessorResponse { ServiceID = serviceId }; _client.RegisterProcessor(registerUCProcessorRequest); Console.WriteLine("Connected to server"); Send(new GetAvailableDataFeedsRequest()); } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } _keepHeartbeatAlive = true; _heartbeatThread = new Thread(HeartbeatThreadBody) { Name = "WCF Heartbeat", IsBackground = true }; _heartbeatThread.Start(); }
public void RegisterProcessor(RegisterUCProcessorResponse request) { try { var processorInfo = new ProcessorInfo(request.ServiceID, GetSessionID(OperationContext.Current.SessionId), OperationContext.Current); lock (MessageRouter.gMessageRouter) { MessageRouter.gMessageRouter.AddProcessorSession(processorInfo.ID, processorInfo); processorInfo.Chanel.Closed += ProcessorSessionClosed; processorInfo.Chanel.Faulted += ProcessorSessionClosed; } Logger.Info($"New processor added: '{request.ServiceID}' id = '{processorInfo.ID}'"); } catch (Exception ex) { throw new FaultException <TradingServerException>(new TradingServerException(ex.Message), new FaultReason(ex.Message)); } }