W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們在適合大多數(shù)情況的標準連接中為您管理全局 WebSocket 連接。 但是,在某些情況下,您有多個 LiveQuery 服務器并希望連接到所有服務器,一個 WebSocket 連接是不夠的。 我們已經(jīng)針對此類場景公開了 LiveQueryClient。
LiveQueryClient 是標準 WebSocket 客戶端的包裝器。 我們添加了幾種有用的方法來幫助您連接/斷開與 LiveQueryServer 的連接以及輕松訂閱/取消訂閱 MoralisQuery。
let Moralis = require('moralis');
let LiveQueryClient = Moralis.LiveQueryClient;
let client = new LiveQueryClient({
applicationId: '',
serverURL: '',
javascriptKey: '',
masterKey: ''
});
applicationId
?(必填):它是您的 Moralis Dapp 的 applicationId。
serverURL
?(必填):它是 LiveQuery 服務器的 URL。
javascriptKey
?masterKey
??javascriptKey
?和 ?masterKey
?用于在 LiveQueryClient 嘗試連接到 LiveQuery 服務器時對其進行驗證。 如果您設置它們,它們應該與您的 Moralis 應用程序相匹配。 您可以在此處查看 LiveQuery 協(xié)議以獲取更多詳細信息。
client.open();
在您調用它之后,LiveQueryClient 將嘗試向 LiveQuery 服務器發(fā)送連接請求。
let query = new Moralis.Query('Game');
let subscription = client.subscribe(query, sessionToken);
query
?(必需):這是您要訂閱的 MoralisQuery。
sessionToken
?:如果您提供 sessionToken,LiveQuery 服務器只會向 sessionToken 適合 MoralisObjects ACL 的客戶端發(fā)送更新。 您可以在此處查看 LiveQuery 協(xié)議以獲取更多詳細信息。client.unsubscribe(subscription);
subscription
?(必需):這是您要取消訂閱的訂閱。調用此方法后,您將不會從訂閱對象中獲得任何事件。client.close();
此函數(shù)將關閉與此 LiveQueryClient 的 WebSocket 連接,取消自動重新連接,并取消訂閱所有基于它的訂閱。
我們公開了三個事件來幫助您監(jiān)控 LiveQueryClient 的狀態(tài)。
client.on('open', () => {
console.log('connection opened');
});
當我們與 LiveQuery 服務器建立 WebSocket 連接時,您將收到此事件。
client.on('close', () => {
console.log('connection closed');
});
當我們失去與 LiveQuery 服務器的 WebSocket 連接時,您將收到此事件。
client.on('error', (error) => {
console.log('connection error');
});
當發(fā)生網(wǎng)絡錯誤或 LiveQuery 服務器錯誤時,您將收到此事件。
由于整個 LiveQuery 功能依賴于與 LiveQuery 服務器的 WebSocket 連接,因此我們總是嘗試保持打開的 WebSocket 連接。
因此,當與 LiveQuery 服務器的連接丟失時,我們會嘗試自動重新連接。 我們在引擎蓋下做指數(shù)回退。
但是,如果 WebSocket 連接由于 ?Moralis.LiveQuery.close()
? 或 ?client.close()
? 而關閉,我們將取消自動重新連接。
當您訂閱 MoralisQuery 時,我們會將 sessionToken 發(fā)送到 LiveQuery 服務器。 對于標準 API,我們默認使用當前用戶的 sessionToken。 對于高級 API,您可以在訂閱 MoralisQuery 時使用任何 sessionToken。 需要注意的重要一點是,當您注銷或您使用的 sessionToken 無效時,您應該取消訂閱并重新訂閱 MoralisQuery。 否則,您可能會遇到安全問題,因為您會收到不應該發(fā)送給您的事件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: