Sto utilizzando WCF in .NET 3.5 per implementare un'applicazione di rete peer to peer. Per risolvere i nodi peer sto usando PNRP.WCF Peer to Peer, ci sono nodi là fuori?
IGlobalStoreServiceContract è il mio contratto come mostrato di seguito,
[ServiceContract(Namespace = "http://GlobalStoreEventDriven.API", CallbackContract = typeof(IGlobalStoreServiceContract))]
internal interface IGlobalStoreServiceContract
{
[OperationContract(IsOneWay = true)]
void NotifyGlobalStoreDataInserted(string globalGroup, DateTime maxDateTime);
[OperationContract(IsOneWay = true)]
void RegisterNode();
[OperationContract(IsOneWay = true)]
void SynchronizeMemberList(Guid clientId);
}
Sto usando un po 'di codice come questo per unire ogni nodo per la rete peer to peer.
La mia domanda è non appena ho aperto il canale come posso meglio dire se altri nodi peer sono in rete?
Per esempio, potrei chiamare uno dei metodi nel mio RegisterNode del contratto e ogni nodo della rete potrebbe utilizzare una richiamata per chiamare SynchronizeMemberList. Vorrei quindi sapere se c'erano altri nodi.
Il problema è che è tutto asincrono. Se chiamo RegisterNode e nessuno risponde, in realtà non significa che nessuno è lì, potrebbe solo significare che non ho aspettato abbastanza.
Che cosa ne pensi? Eventuali suggerimenti?