Delen via


Groepsrecords beheren

Een groepsrecord is specifieke gegevens die worden gepubliceerd naar alle actieve leden van een peergroep, bijvoorbeeld een chatbericht of een toepassingsspecifieke statusupdate. Een record wordt vertegenwoordigd door de PEER_RECORD structuur en bevat de volgende informatie over een peer:

  • De record-id is een waarde die een record uniek identificeert in de peergroep.
  • Een GUID waarmee het recordtype wordt opgegeven. Toepassingen kunnen verschillende recordtypen ondersteunen. Een toepassing interpreteert het gegevens veld van een record op basis van het recordtype. Sommige GUID's zijn gereserveerd en de API-aanroep retourneert PEER_E_NOT_AUTHORIZED wanneer de toepassing deze probeert te gebruiken.
  • Een set recordkenmerken die worden beschreven als een XML-tekenreeks. De kenmerken worden gebruikt bij het zoeken naar records. Zie Record Attribute Schemavoor meer informatie over kenmerken.
  • De werkelijke tijd waarop een record wordt aangemaakt.
  • De vervaltijd voor een record.
  • Het tijdstip waarop een record door een peer is gewijzigd.
  • De maker van een record.
  • Het lid dat een record wijzigt.
  • Een PEER_DATA structuur die de cryptografische handtekening bevat voor alle velden in deze PEER_RECORD structuur. Dit veld kan niet rechtstreeks worden bijgewerkt of gewijzigd door een peer.
  • Een PEER_DATA structuur die de toepassingsspecifieke gegevens bevat die aan deze record zijn gekoppeld als een matrix van bytes. Het type gegevens dat in dit veld aanwezig is, wordt bepaald door het door de toepassing gedefinieerde recordtype.

Het verkrijgen van peergroepgegevens

Afzonderlijke records worden verkregen door PeerGroupGetRecord aan te roepen met de id van de record. Wanneer alle records van een specifiek type worden verwerkt, wordt de geïnventareerde set van alle huidige peergroeprecords verkregen door eerst PeerGroupEnumRecords aan te roepen om de opsomming te openen en vervolgens iteratief PeerGetNextItem- aan te roepen totdat alle records zijn opgehaald. Wanneer u klaar bent, sluit u de opsomming en laat u het geheugen los dat eraan is gekoppeld door PeerEndEnumerationaan te roepen.

Wanneer een record wordt gemaakt, verwijderd of bijgewerkt door een peer, wordt de betrokken record gepubliceerd naar alle leden van de peergroep via de PEER_GROUP_EVENT_RECORD_CHANGE gebeurtenis. Houd er rekening mee dat, als een peer niet is verbonden met de groep, deze de bijgewerkte record zal ontvangen de volgende keer dat hij verbinding maakt. Het is belangrijk dat u zich registreert voor deze gebeurtenis bij PeerGroupRegisterEvent als uw toepassing records op een zinvolle manier onderhoudt of beheert. De toepassing kan ook query's uitvoeren op de recorddatabase op aanvraag met behulp van PeerGroupSearchRecords.

Wanneer de PEER_GROUP_EVENT_RECORD_CHANGE gebeurtenis wordt gegenereerd, wordt de specifieke record-id en het type wijziging (toevoegen, bijwerken, verwijderen) ontvangen als een PEER_EVENT_RECORD_CHANGE_DATA structuur. Deze structuur wordt verkregen met een aanroep van PeerGroupGetEventData. Als de wijziging een invoegtoepassing of update is, moet u PeerGroupGetRecord gebruiken om de record met de opgegeven id te verkrijgen. De lokale recorddatabase voor de infrastructuur wordt automatisch bijgewerkt.

U kunt ook zoeken naar specifieke records op basis van specifieke aangepaste kenmerken die zijn opgegeven in het pwzAttributes veld van PEER_RECORD, evenals eventuele vooraf gedefinieerde kenmerken. Hiervoor gebruikt u de functie PeerGroupSearchRecords met een XML-zoekquery dat is opgemaakt volgens de specificaties in de sectie Record Search Query Format.

Raadpleeg het onderwerp Records in De peer-infrastructuur gebruikenvoor meer informatie over het werken met records in de peerinfrastructuur.

Beheer van peergroepgegevens

Wanneer de initiële uitnodigingen worden uitgegeven door de maker van de peergroep, kan deze opgeven dat bepaalde leden in een beheerdersrol (PEER_GROUP_ROLE_ADMIN) dienen wanneer er nieuwe referenties aan de gebruiker worden uitgegeven (via PeerGroupCreateInvitation- of PeerGroupIssueCredentials). Een beheerder heeft de mogelijkheid om alle peergroeprecords rechtstreeks toe te voegen, te verwijderen en bij te werken. Omgekeerd kan een peergroeplid met de rol die is ingesteld op PEER_GROUP_ROLE_MEMBER of PEER_GROUP_ROLE_INVITING_MEMBER alleen eigen records toevoegen, bijwerken en verwijderen.

De maker heeft standaard de beheerdersrol.

Als u een record wilt bijwerken, haalt u de record op met PeerGroupGetRecord of PeerGroupEnumRecords, breng u de wijzigingen aan en geeft u de bijgewerkte record door aan PeerGroupUpdateRecord.

Als u een record wilt verwijderen, geeft u de record-id door die u wilt verwijderen aan PeerGroupDeleteRecord.

Als u een record wilt toevoegen, maakt u een nieuwe PEER_RECORD structuur en vult u de volgende velden in:

  • dwSize. Dit veld bevat de waarde van , ter grootte van(PEER_RECORD).
  • ftExpiration. Dit veld bevat de vervaldatum en tijd van deze record, uitgedrukt in peertijd als een FILETIME structuur.
  • type. Dit veld bevat een GUID waarde waarmee het recordtype voor de toepassing wordt geïdentificeerd. Als dit type aangepast is aan uw toepassingsinfrastructuur, moet u ook het veld gegevens vullen.

De volgende velden worden ingevuld door de infrastructuur en worden genegeerd als deze zijn ingesteld door de toepassing:

  • id
  • pwzCreatorId
  • pwzLastModifiedById
  • ftCreation
  • laatst gewijzigd
  • securityData

De resterende velden zijn optioneel. Als u deze nieuwe record wilt toevoegen aan de peergroep, geeft u deze door aan PeerGroupAddRecord.

Records importeren en exporteren

Peer-to-peergroeprecords worden lokaal beheerd als een database. Als u een huidige momentopname van de peergroeprecorddatabase wilt opslaan in een lokaal bestand, roept u PeerGroupExportDatabaseaan en geeft u deze door aan de peergroep. Dit bestand kan vervolgens worden overgebracht naar een andere computer of toepassing, die deze recorddatabase kan extraheren en gebruiken door PeerGroupImportDatabase aan te roepen.