private void DiscoverNodesSync() { using (var discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint())) { FindResponse fileToMachineEndPoints = discoveryClient.Find(new FindCriteria(typeof(IFileToMachineServiceContract))); foreach (EndpointDiscoveryMetadata endpoint in fileToMachineEndPoints.Endpoints) { try { var client = new FileToMachineClient(new BasicHttpBinding(), endpoint.Address); FileToMachineHandler.AddToRoutingTable(client.Ping().NodeIdentifier); } catch (CommunicationException e) { } } FindResponse reverseIndexEndPoints = discoveryClient.Find(new FindCriteria(typeof(IReverseIndexServiceContract))); foreach (EndpointDiscoveryMetadata endPoint in reverseIndexEndPoints.Endpoints) { try { var client = new ReverseIndexServiceClient(new BasicHttpBinding(), endPoint.Address); ReverseIndexHandler.AddToRoutingTable(client.Ping().NodeIdentifier); } catch (CommunicationException e) { } } } }
private static void Main(string[] args) { ContractDescription contract = ContractDescription.GetContract(typeof(IReverseIndexServiceContract)); Binding binding = new BasicHttpBinding(); var address = new EndpointAddress("http://localhost:8020/ReverseIndex"); var endpoint = new ServiceEndpoint(contract, binding, address); using (var client = new ReverseIndexServiceClient(endpoint)) { HeartBeat <string> res = client.Ping(new NodeIdentifier <string>("asd", "asdasd")); Console.WriteLine(res); } Console.ReadLine(); }
private static void Main(string[] args) { ContractDescription contract = ContractDescription.GetContract(typeof (IReverseIndexServiceContract)); Binding binding = new BasicHttpBinding(); var address = new EndpointAddress("http://localhost:8020/ReverseIndex"); var endpoint = new ServiceEndpoint(contract, binding, address); using (var client = new ReverseIndexServiceClient(endpoint)) { HeartBeat<string> res = client.Ping(new NodeIdentifier<string>("asd", "asdasd")); Console.WriteLine(res); } Console.ReadLine(); }
public void InitDiscovery() { IObservable <ServiceEndpointDiscoveredEventArgs <string> > reverseIndexObservable = Observable.Start( () => GetServiceDiscoveryData <IReverseIndexServiceContract>()) .Merge() .Select(discoveryMetadata => { try { var client = new ReverseIndexServiceClient(new BasicHttpBinding(), discoveryMetadata.Address); return(new ServiceEndpointDiscoveredEventArgs <string>(client.Ping().NodeIdentifier, discoveryMetadata)); } catch (Exception) { return(null); } }) .Where(discoveredEventArgs => discoveredEventArgs != null) .Do(OnReverseIndexServiceEndpointDiscovered); IObservable <ServiceEndpointDiscoveredEventArgs <FileId> > fileToMachineObservable = Observable.Start(() => GetServiceDiscoveryData <IFileToMachineServiceContract>()) .Merge() .Select(discoveryMetadata => { try { var client = new FileToMachineClient(new BasicHttpBinding(), discoveryMetadata.Address); return(new ServiceEndpointDiscoveredEventArgs <FileId>(client.Ping().NodeIdentifier, discoveryMetadata)); } catch (Exception) { return(null); } }) .Where(discoveredEventArgs => discoveredEventArgs != null) .Do(OnFileToMachineEndpointDiscovered); reverseIndexObservable.Merge <object>(fileToMachineObservable) .ObserveOnDispatcher() .Subscribe(_ => { }, OnDiscoveryFinished); }