public void Run() { var socketLock = new object(); var messagesConsumed = 0; using (var context = new Context()) using (var brokerConsumeSocket = context.Socket(SocketType.REP)) using (var brokerAnnounceSocket = context.Socket(SocketType.REQ)) using (var scalerAnnounceSocket = context.Socket(SocketType.REP)) { var receiver = new MulticastReceiver(_encoding); var brokerIp = receiver.Receive("239.20.20.20", 8888); brokerAnnounceSocket.Connect(string.Format("tcp://{0}:9999", brokerIp)); scalerAnnounceSocket.Bind(string.Format("tcp://*:7777")); Console.WriteLine("Scaler connected!"); brokerConsumeSocket.Connect(string.Format("tcp://{0}:5560", brokerIp)); Console.WriteLine("Consumer connected!"); Action consumer = () => new MessageConsumer().Run(brokerConsumeSocket, socketLock, ref messagesConsumed); Action monitor = () => new QueueScaler().Run(brokerAnnounceSocket, _encoding, consumer, scalerAnnounceSocket, ref messagesConsumed); Action alerter = () => new EmailAlerter().Run(brokerAnnounceSocket, _encoding, ref messagesConsumed); var tasks = new[] { Task.Run(monitor), Task.Run(alerter) }; Task.WaitAll(tasks); } Console.WriteLine("Consumer done!"); Console.WriteLine("Consumed {0} messages!", messagesConsumed); Console.ReadLine(); }
public AvailableServersViewModel(IClientConnector connector, IFCWebServiceProvider webServiceProvider, FCClientNetworkData clientNetworkData, MulticastReceiver multicastReceiver) { _clientConnector = connector; _webServiceProvider = webServiceProvider; _availableServers = new List <ServerInfo>(); this.ClientNetworkData = clientNetworkData; ClientNetworkData.AuthorizationToken = _webServiceProvider.Authorize("abc", "def").Result; _multicastReceiver = multicastReceiver; }
public MulticastPlayer(MediaElement element, IDictionary<string, string> initParams, Logger logger) : base(element,logger.clone("McastPlayer")) { logger.info("c-tor"); this.element = element; this.receiver = new MulticastReceiver(logger); this.receiver.BeginJoinGroup += receiver_BeginJoinGroup; this.receiver.EndJoinGroup += receiver_EndJoinGroup; this.receiver.ReceivedFirstPacket += receiver_ReceivedFirstPacket; this.receiver.setMediaPlayer(this.element); this.receiver.init(initParams); this.element.Volume = 1.0; }
public MulticastPlayer(MediaElement element, string ip = null) : base(element) { this.element = element; this.receiver = new MulticastReceiver(); this.receiver.BeginJoinGroup += receiver_BeginJoinGroup; this.receiver.EndJoinGroup += receiver_EndJoinGroup; this.receiver.ReceivedFirstPacket += receiver_ReceivedFirstPacket; this.receiver.setMediaPlayer(this.element); Dictionary<string, string> param = new Dictionary<string, string>(); if (!String.IsNullOrEmpty(ip)) { param.Add("streamAddress", ip); } this.receiver.init(param); }
public MulticastPlayer(MediaElement element, string ip = null) : base(element) { this.element = element; this.receiver = new MulticastReceiver(); this.receiver.BeginJoinGroup += receiver_BeginJoinGroup; this.receiver.EndJoinGroup += receiver_EndJoinGroup; this.receiver.ReceivedFirstPacket += receiver_ReceivedFirstPacket; this.receiver.setMediaPlayer(this.element); Dictionary <string, string> param = new Dictionary <string, string>(); if (!String.IsNullOrEmpty(ip)) { param.Add("streamAddress", ip); } this.receiver.init(param); }
public bool LoadConfig() { string configFile = GetConfigPath(); if (!File.Exists(configFile)) { MessageBox.Show(string.Format("Config file, '{0}', not found.", configFile), "Miner Control: Config file missing", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } Dictionary <string, object> data; try { string pageString = File.ReadAllText(configFile); JavaScriptSerializer serializer = new JavaScriptSerializer(); data = serializer.DeserializeObject(pageString) as Dictionary <string, object>; } catch (ArgumentException ex) { MessageBox.Show(string.Format("Error loading config file: '{0}'.", ex.Message), "Miner Control: Config file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } try { LoadConfigGeneral(data["general"] as Dictionary <string, object>); LoadConfigAlgorithms(data["algorithms"] as object[]); } catch (Exception ex) { MessageBox.Show(string.Format("Error processing general configuration: '{0}'.", ex.Message), "Miner Control: Config file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } try { LoadService(new NiceHashService(), data, "nicehash"); LoadService(new WestHashService(), data, "westhash"); LoadService(new TradeMyBitService(), data, "trademybit"); LoadService(new YaampService(), data, "yaamp"); LoadService(new WafflePoolService(), data, "wafflepool"); LoadService(new LtcRabbitService(), data, "ltcrabbit"); LoadService(new WePayBtcService(), data, "wepaybtc"); LoadService(new HamsterPoolService(), data, "hamsterpool"); LoadService(new ManualService(), data, "manual"); // Set Id for each entry for (int x = 0; x < _priceEntries.Count; x++) { _priceEntries[x].Id = x + 1; } } catch (Exception ex) { MessageBox.Show(string.Format("Error processing service configuration: '{0}'.", ex.Message), "Miner Control: Configuration file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (_remoteSend) { _remoteSender = new MulticastSender(_endPoint, 1); _remoteSender.Start(); } if (_remoteReceive) { _remoteReceiver = new MulticastReceiver(_endPoint); _remoteReceiver.DataReceived += ProcessRemoteData; _remoteReceiver.Start(); } return(true); }
protected override void Dispose(bool disposing) { logger.info("Dispose: disposing={0}", disposing); if (disposing) { if (receiver != null) { receiver.stopPlayer(); this.receiver.BeginJoinGroup -= receiver_BeginJoinGroup; this.receiver.EndJoinGroup -= receiver_EndJoinGroup; this.receiver.ReceivedFirstPacket -= receiver_ReceivedFirstPacket; this.receiver.setMediaPlayer(null); if (receiver is IDisposable) { (receiver as IDisposable).Dispose(); } receiver = null; } } }
public bool LoadConfig() { string configFile = GetConfigPath(); if (!File.Exists(configFile)) { MessageBox.Show(string.Format("Config file, '{0}', not found.", configFile), "Miner Control: Config file missing", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } Dictionary <string, object> data; try { string pageString = File.ReadAllText(configFile); JavaScriptSerializer serializer = new JavaScriptSerializer(); data = serializer.DeserializeObject(pageString) as Dictionary <string, object>; } catch (ArgumentException ex) { MessageBox.Show(string.Format("Error loading config file: '{0}'.", ex.Message), "Miner Control: Config file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } try { LoadConfigGeneral(data["general"] as Dictionary <string, object>); LoadConfigAlgorithms(data["algorithms"] as object[]); } catch (Exception ex) { MessageBox.Show(string.Format("Error processing general configuration: '{0}'.", ex.Message), "Miner Control: Config file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } try { LoadService(new NiceHashService(), data, "nicehash"); LoadService(new LtcRabbitService(), data, "ltcrabbit"); LoadService(new WePayBtcService(), data, "wepaybtc"); foreach (string service in data.Keys) { switch (service) { case "general": break; case "algorithms": break; case "nicehash": break; case "ltcrabbit": break; case "wepaybtc": break; default: Dictionary <string, object> serviceData = data[service] as Dictionary <string, object>; if (service.StartsWith("manual", StringComparison.InvariantCultureIgnoreCase)) { if (serviceData != null && serviceData.ContainsKey("name")) { LoadService(new ManualService(serviceData.GetString("name")), serviceData); } else { LoadService(new ManualService(service), serviceData); } } else if (service.EndsWith("coin", StringComparison.InvariantCultureIgnoreCase)) { if (serviceData != null && serviceData.ContainsKey("name")) { LoadService(new CoinService(serviceData.GetString("name")), serviceData); } else { LoadService(new CoinService(service), serviceData); } } else { //All others are treated as YaampClones LoadService(new YaampCloneService(service), serviceData); } break; } } // Set Id for each entry for (int x = 0; x < _priceEntries.Count; x++) { _priceEntries[x].Id = x + 1; } } catch (Exception ex) { MessageBox.Show(string.Format("Error processing service configuration: '{0}'.", ex.Message), "Miner Control: Configuration file error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (_remoteSend) { _remoteSender = new MulticastSender(_endPoint, 1); _remoteSender.Start(); } if (_remoteReceive) { _remoteReceiver = new MulticastReceiver(_endPoint); _remoteReceiver.DataReceived += ProcessRemoteData; _remoteReceiver.Start(); } return(true); }