public override ResolveResponseInfo Resolve(ResolveInfo resolveInfo) { ResolveResponseInfo rri = new ResolveResponseInfo(); if (ControlShape) { lock (mesh_lock) { if (nodes_count == 0) { rri.Addresses = new PeerNodeAddress [0]; } else if (unique_node != null) { Node n = unique_node; rri.Addresses = new PeerNodeAddress [] { n.Address }; } Console.WriteLine("Resolve: {0}", resolveInfo.MeshId); } } else { rri = base.Resolve(resolveInfo); } return(rri); }
public void ResolveResponseInfo() { var ser = new DataContractSerializer(typeof(ResolveResponseInfo)); var rri = new ResolveResponseInfo(); var pna = new PeerNodeAddress( new EndpointAddress("http://localhost:8080"), new ReadOnlyCollection <IPAddress> (new IPAddress [0])); rri.Addresses = new List <PeerNodeAddress> (); rri.Addresses.Add(pna); var sw = new StringWriter(); using (var xw = XmlWriter.Create(sw)) ser.WriteObject(xw, rri); rri = (ResolveResponseInfo)ser.ReadObject(XmlReader.Create(new StringReader(sw.ToString()))); }
public static void Main() { BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress ea = new EndpointAddress( new Uri("http://localhost:8080/ChatServer")); IPeerResolverContract proxy = ChannelFactory <IPeerResolverContract> .CreateChannel(binding, ea); try { Guid guid = Guid.NewGuid(); Console.WriteLine(guid); ResolveInfo ri = new ResolveInfo( guid, "net.p2p://chatMesh/ChatServer", 1); ResolveResponseInfo rri = proxy.Resolve(ri); Console.WriteLine("Response: {0}", rri); } catch (Exception e) { Console.WriteLine(e.Message); } }