從 0 到 1,打造自己的遊戲後端服務
  • 簡介
  • 基礎服務
    • 架構介紹
    • Data 服務
    • API 服務
      • 在 Parse 服務架構簡易的 Cloud Code 部署機制
    • Notification 服務
      • Parse 推送服務設定與測試
    • Job 服務
      • 在 Parse 上透過 Cron 配置常用的 Scheduler
    • Email 服務
    • SMS 服務
    • Hosting 服務
    • Realtime 服務
      • Parse Live Query 設定
    • Information 服務
      • Parse Config 與 Firebase Remote Config 服務介紹
      • Connectivity 取得與監聽
      • Time 服務介紹與實作方法
      • IP 資料庫能獲得什麼資料
  • 遊戲服務
    • Achievement 成就系統
      • 設計簡易的成就系統 - 透過 Parse
    • Leaderboard 排行榜系統
      • 設計簡易的公開排行榜系統 - 透過 Parse
    • Pairing 配對系統
      • 設計簡易的 Dispatcherless 自動配對機制 - 透過 Firebase Realtime Database
    • Turn-based Multiplayer 回合制多人遊戲
      • 簡易的回合制多人遊戲系統 - 透過 Parse
    • Real-time Multiplayer 即時多人遊戲
      • 設計簡易的即時多人遊戲傳輸通道 - 透過 Firebase Realtime Database
  • 附錄 Self-Hosted Parse
    • Parse 服務架設
    • 建立 Parse 資料庫服務
    • 建立 Parse 服務
Powered by GitBook
On this page
  • 伺服器端設定變更
  • Android Client 設定
  • iOS Client 設定
  1. 基礎服務
  2. Realtime 服務

Parse Live Query 設定

伺服器端設定變更

{
  "appId": 'my_app_id',
  "masterKey": 'my_master_key',
  // ...
  "liveQuery": {
    "classNames": ['Test', 'TestAgain']  // Live Query 要支援的 Class
  }
}
  • 除此之外,還需要把掛載 Parse 的 http(s)Server 拿來創建一個 Live Query Server

// 原本 Express
let httpServer = require('http').createServer(app);
httpServer.listen(port);

// 新增 Live Query Server
var parseLiveQueryServer = ParseServer.createLiveQueryServer(httpServer);

LiveQuery 服務器的 ws protocol 會沿用 http(s)Server 監聽的主機名和端口。例如,如果 http(s)Sever 正在偵聽 localhost:8080,則 LiveQuery 服務器的 ws protocol 為 ws://localhost:8080/

Android Client 設定

  • 在 gradle 設定檔案中新增 dependency

dependencies {
  compile 'com.parse:parse-livequery-android:1.0.4'
}
  • 針對特定的 Query 進行 Subscribe

ParseQuery<Message> parseQuery = ParseQuery.getQuery(Message.class);

ParseLiveQueryClient parseLiveQueryClient = ParseLiveQueryClient.Factory.getClient();
SubscriptionHandling<ParseObject> subscriptionHandling = parseLiveQueryClient.subscribe(parseQuery);
  • 監聽所有事件

subscriptionHandling.handleEvents(new SubscriptionHandling.HandleEventsCallback<ParseObject>() {
    @Override
    public void onEvents(ParseQuery<ParseObject> query, SubscriptionHandling.Event event, ParseObject object) {
        // HANDLING all events
    }
})
  • 監聽特定事件

subscriptionHandling.handleEvent(SubscriptionHandling.Event.CREATE, new SubscriptionHandling.HandleEventCallback<ParseObject>() {
    @Override
    public void onEvent(ParseQuery<ParseObject> query, ParseObject object) {
        // HANDLING create events
    }
})

iOS Client 設定

  • 在 pod 設定檔案中新增 dependency

pod 'ParseLiveQuery'
  • 針對特定的 Query 進行 Subscribe

let myQuery = Message.query()!.where(....)
let subscription: Subscription<Message> = Client.shared.subscribe(myQuery)
  • 監聽所有事件

subscription.handleEvent { query, event in
    // HANDLING all events
}
  • 監聽特定事件

subscription.handle(Event.created) { query, object in
    // HANDLING create events
}
PreviousRealtime 服務NextInformation 服務

Last updated 6 years ago