Aracılığıyla paylaş


Eş Gruba Bağlanma

Bu konu başlığında, bir uygulamanın Eş Gruplandırma API'lerini kullanarak bir eş grubuna nasıl bağlanıldığı açıklanmaktadır.

Eş Grubuna Katılma

Bir eş grubuna katılmak için PeerGroupJoinçağrısı yapın ve eş kimliğini ve daveti geçirin (davetteki bulut adı belirsizse isteğe bağlı bir PNRP bulut adı).

Başarılı olursa, PeerGroupJoin bir tanıtıcıyı eş gruba döndürür.

Eş daha önce eş grubuna katıldıysa ve ardından tanıtıcıyı kapattıysa, eş grubu PeerGroupOpen çağrılarak ve eş grubunun adı geçirilerek yeniden açılmalıdır. Bu çağrı yeni bir eş grup tanıtıcısı döndürür.

Eş grubu başarıyla katıldıktan sonra, eş doğrudan eş grubuna bağlanabilir ve PeerGroupConnectçağırarak etkileşime geçebilir. Bağlandıktan sonra, eş "çevrimiçi" olarak kabul edilir.

Bir uygulama o sırada grupla etkileşim kurmazsa "çevrimdışı" kalabilir. Eğer daha sonraki bir aşamada doğrudan eş grubuna katılmayı seçerse, onu çevrimiçine getirmek için yapılacak bir sonraki çağrı PeerGroupConnect olacaktır. Bir eş eş grubuna katıldıktan sonra, kayıtları eş grubuna yayımlayabilmesi için önce en az bir kez bağlanması gerekir.

Bağlanmadan Eş Grubu Açma (Çevrimdışı)

Genellikle, bir uygulamanın bir eş gruba bağlanmasını isteyebilirsiniz, ancak doğrudan katılmamak, kayıt güncelleştirmelerini alıp yayımlamak, ancak veri iletileri göndermemek veya almamak isteyebilirsiniz. Bir uygulama, PeerGroupCreate, PeerGroupJoinveya PeerGroupOpen çağrıldıktan hemen sonra bu "çevrimdışı" durumdadır.

Çevrimdışı bir uygulama, PeerGroupConnectçağırarak istediğiniz zaman çevrimiçi olabilir. Bağlandıktan sonra, bu kimlikle ilişkili ve bu grubu paylaşan diğer tüm uygulamalar da bu kimlikle bağlantıları kapatana kadar eş grup çevrimdışı olamaz.

Eş grubu, birden çok uygulama için kullanılabilen ortak bir kaynaktır. Aynı kimlik ve Windows kullanıcısı için birden fazla uygulama, aynı eş grubu kullanıyorsa, aynı temel veritabanı ve bağlantıları (komşu ve doğrudan) da paylaşır. Bu uygulamalardan biri PeerGroupConnectçağırırsa, gruba katılan bu kimliğin/kullanıcının diğer tüm uygulamaları da gruba bağlanır. Grup çevrimdışıyken bir uygulama tarafından bir kayıt eklenirse, diğer uygulamalar da kaydı görebilir. Sonuç olarak, bir uygulamanın herhangi bir zamanda çevrimiçi olmaya hazır olması gerekir.

Eş Gruba Bağlanma (Çevrimiçi)

Gruba katılmaya başlamak için grubu oluşturduktan, katıldıktan veya açtıktan sonra PeerGroupConnect çağırın. Bu durumda, PeerGroupOpenDirectConnectionçağrılarak aynı gruba katılan diğer eşlerle doğrudan bağlantılar açılabilir.

Bağlantı girişiminin başarısız olup olmadığını algılamak için PEER_GROUP_EVENT_CONNECTION_FAILED olayına kaydolun. Bu olay, gruplandırma altyapısı bağlanacak başka bir üye bulamazsa veya grup veritabanı eşitlenmeden ve başka bir bağlantı kurulamadan bağlantı başarısız olursa tetiklenir.

Eş üzerinde yürütülen ve aynı eş kimliğine sahip aynı gruba katılan birden çok uygulama çevrimdışı olabilir, ancak uygulamalardan herhangi biri tarafından PeerGroupConnect çağrısı tüm uygulamaların çevrimiçi olmasına neden olur.

Ayrıca, eş üzerindeki bir uygulama gruba bağlandıysa, PeerGroupJoin veya PeerGroupOpen çağıran diğer tüm uygulamalar da hemen bağlanır. Bir uygulama PeerGroupCloseçağırdığında, tanıtıcı yalnızca bu uygulama için kapatılır. Bu nedenle, uygulama tarafından yapılan PeerGroupOpen sonraki bir çağrı yeni bir grup tanıtıcısı döndürür ve aynı grupta yer alan diğer uygulamalar hala bağlıysa, uygulama anında çevrimiçi duruma getirilir.

Veri Gönderme ve Alma

Gruptaki belirli üye düğümleri arasında veri göndermek ve almak için, etkileşim kurmak istediğiniz üyelerle doğrudan bağlantılar kurulmalıdır. Doğrudan bağlantı kurmak, PeerGroupOpenDirectConnectioniçin zaman uyumsuz bir çağrıdır ve bağlı bir grubun tutamacını ve bağlanmak istediğiniz grup içindeki eş kimliğini geçirir. Bu yöntem bir bağlantı kimliği döndürür. Çağrı başarılı olursa, eş üzerinde bağlantı kimliğinin doğrulandığı bir PEER_GROUP_EVENT_DIRECT_CONNECTION olayı oluşturulur.

Diğer çevrimiçi eşlerden doğrudan bağlantılar almak için, PeerGroupRegisterEventçağrısıyla PEER_GROUP_EVENT_DIRECT_CONNECTION olayına kaydolun.

Doğrudan bağlantı başarıyla kurulduktan sonra uygulama, geçerli bağlantı kimliğini geçirerek PeerGroupSendDataçağrısıyla veri göndermeye başlayabilir. Çok parçalı veri iletimlerinin sırası, PeerGroupSendDatatarafından işlenir. Ancak, uygulamaların bu API çağrısı tarafından döndürülen opak verileri işlemek için uygun bir protokol yığını uygulaması gerekir.

Doğrudan bağlantı üzerinden veri almak için uygulamanın PeerGroupRegisterEventile PEER_GROUP_EVENT_INCOMING_DATA olayına kaydolması gerekir. Olay işleyicisi, opak verileri alıp sıralamaktan ve uygulamaya geçirmekten sorumludur. Bu veriler, kayıtlı olayların tanıtıcısıyla PeerGroupGetEventData çağrılarak olay işleyicisi içinde elde edilir.

PeerGroupCloseDirectConnection çağrılarak doğrudan bir bağlantı kapatılır ve bir önceki çağrıda PeerGroupOpenDirectConnection için elde edilen veya PEER_EVENT_GROUP_DIRECT_CONNECTION olay verilerinde alınan bağlantı kimliği geçirilerek gerçekleştirilir.