管理群組記錄
群組記錄是發佈至對等群組所有作用中成員的特定數據,例如聊天訊息或應用程式特定的狀態更新。 記錄由 PEER_RECORD 結構體表示,並包含以下關於對等端的資訊:
- 記錄標識碼是可唯一識別對等群組中記錄的值。
- 指定記錄類型的 GUID。 應用程式可以支援不同的記錄類型。 應用程式會根據記錄類型,解譯記錄的 數據 欄位。 某些 GUID 是保留的,當應用程式嘗試使用這些 GUID 時,API 呼叫會傳回 PEER_E_NOT_AUTHORIZED。
- 描述為 XML 字串的一組記錄屬性。 搜尋記錄時會使用屬性。 如需屬性的詳細資訊,請參閱 記錄屬性架構。
- 建立記錄的同步時間。
- 記錄到期的對等時間。
- 修改記錄的對等時間。
- 記錄的建立者。
- 修改記錄的成員。
- PEER_DATA 結構,其中包含此 PEER_RECORD 結構中所有字段的密碼編譯簽章。 此欄位無法由對等直接更新或改變。
- PEER_DATA 結構,其中包含與此記錄相關聯的應用程式特定數據做為位元組陣列。 此欄位中存在的數據類型取決於應用程式定義的記錄類型。
取得對等群組記錄
透過呼叫具有記錄標識碼 的 PeerGroupGetRecord,即可取得個別記錄。 處理特定類型的所有記錄時,會先呼叫peerGroupEnumRecords 來取得所有目前對等群組記錄的列舉集,然後反覆 呼叫peerGetNextItem,直到擷取所有記錄為止。 完成時,請透過呼叫 PeerEndEnumeration來關閉列舉並釋放與其相關聯的記憶體。
當某位成員建立、刪除或更新一條記錄時,受影響的記錄會透過 PEER_GROUP_EVENT_RECORD_CHANGE 事件通知對等群組的所有成員。 請注意,如果節點未連線到群組,則它會在下次連線時收到更新的記錄。 如果您的應用程式以任何有意義的方式維護或管理記錄,請務必向 PeerGroupRegisterEvent 註冊這個事件。 或者,應用程式可以使用peerGroupSearchRecords ,視需要查詢記錄資料庫。
引發 PEER_GROUP_EVENT_RECORD_CHANGE 事件時,會以 PEER_EVENT_RECORD_CHANGE_DATA 結構的形式接收特定的記錄標識碼和類型,以及變更的類型(新增、更新、刪除)。 透過呼叫peerGroupGetEventData 來取得此結構。 如果變更是新增或更新,您應該使用 PeerGroupGetRecord 來取得具有所提供 ID 的記錄。 基礎設施的本地記錄資料庫會自動更新。
您也可以根據 pwzAttributesPEER_RECORD欄位中提供的特定自定義屬性,以及任何預先定義的屬性來搜尋特定記錄。 若要達成此目的,請使用 PeerGroupSearchRecords 函式,並將 XML 搜尋查詢格式化為 Record Search Query Format 主題中所指定。
如需在對等基礎結構中使用記錄的詳細資訊,請參閱 使用對等基礎結構中的 記錄 主題。
同儕群組記錄的管理
當對等群組的建立者發出初始邀請時,只要向用戶發出新的認證,就可以指定特定成員在系統管理角色中服務 PEER_GROUP_ROLE_ADMIN(PeerGroupCreateInvitation,或 PeerGroupIssueCredentials)。 系統管理員能夠直接新增、刪除及更新任何對等群組記錄。 相反地,角色設定為 PEER_GROUP_ROLE_MEMBER 或 PEER_GROUP_ROLE_INVITING_MEMBER 的對等群組成員只能新增、更新和刪除其自己的記錄。
建立者預設具有系統管理員角色。
若要更新記錄,請使用peerGroupGetRecord或PeerGroupEnumRecords取得記錄,並進行變更,並將更新的記錄傳遞至peerGroupUpdateRecord。
若要刪除記錄,請將要刪除的記錄識別碼傳遞至peerGroupDeleteRecord。
若要新增記錄,請建立新的 PEER_RECORD 結構,並填入下列欄位:
- dwSize。 此欄位包含 sizeof的值(PEER_RECORD)。
- ftExpiration。 此欄位包含此記錄的到期日期和時間,以對等時間表示為 FILETIME 結構。
- 類型。 此欄位包含 GUID 值,可識別應用程式的記錄類型。 如果此類型是應用程式基礎結構的自定義類型,您也應該填入 資料 欄位。
系統會填入下列欄位,若由應用程式設定,則將忽略:
- 識別碼
- pwzCreatorId
- pwzLastModifiedById
- ftCreation
- ftLastModified
- securityData
其餘欄位是選擇性的。 若要將此新記錄新增至對等群組,請將它傳遞至 PeerGroupAddRecord。
匯入和匯出記錄
點對點群組記錄會以資料庫的形式在本機維護。 若要將對等群組記錄資料庫的目前快照集儲存至本機檔案,請呼叫 PeerGroupExportDatabase,並將句柄傳遞給對等群組。 接著,此檔案可以傳輸至不同的計算機或應用程式,其可藉由呼叫peerGroupImportDatabase來擷取及使用此記錄資料庫。