2016-04-16 3 views
-1

私はすでにマルチプレイヤーターンベースのIOSを持っています。私の目標は、プレイヤーに自分のターンをプレイさせてから、自分のターンであることを知らせるプッシュ通知を他のプレイヤーのデバイスに送ることです。IOSターンベースのゲーム - 自分のターンであることをプレイヤーに警告するプッシュ通知?

Urban Airshipで試したことがあり、登録されているすべてのデバイスまたは手動で入力されたデバイスにプッシュ通知をブロードキャストできるサンプルアプリケーションがあります。

私のアプリ内から他のプレイヤーだけに都市飛行船プッシュ通知をトリガーすることはできますか?私は必要に応じて相手のデバイストークンをFirebase DBから引き出すことができます。

これができない場合は、誰かが正しい方向に私を操縦できますか?私はかなりの量の研究を行いました。私が見つけたものはすべて、私がParseに向いていることを示しています。

ありがとうございました。

+0

あるデバイスから別のデバイスにプッシュを送信することはできません。代わりに、デバイスAはデバイスBにプッシュを送信するようサーバーに指示する必要があります。 – Gruntcakes

答えて

0

送信する通知の種類は、あなたとサーバー側のスクリプトによって異なります。必要に応じて通知を送信するいくつかのロジックを備えたこのようなサーバーを作成します。

3

Firebaseを使用している場合、使用できる優れた解決策があります。バッチと呼ばれる素敵なサービスがあります。バッチはプッシュ通知の送信に役立ち、Firebaseでうまく機能します。基本的には、彼がアプリケーションにログインしたときに彼のFirebase Auth Idをバッチサービスに登録することができ、Batchが提供するFirebase Auth IDとREST APIを使って彼のデバイスで通知を送ることができます。

それは私にとって素晴らしい作品です。 Firebaseのデータを監視し、通知を送信する必要があるかどうかを判断するスクリプトがあります。そうであれば、Batch REST APIを使用してそれを行い、瞬時に通知が送信されます。

あなたがここにFirebaseでバッチを統合する方法の詳細情報を見つけることができます。

https://batch.com/parse-replacement-with-firebase

+0

良い解決策。しかし、明らかにするには、サーバー上でnode.jsスクリプトを実行する必要があります。または、クライアントアプリケーションから直接プッシュしていますか? –

+0

@FrankvanPuffelen私の場合、通知はやや複雑なイベントに基づいています。フードの下では、通知を送信する必要があるFirebaseデータベースに格納されたイベントのキューがあります。クライアントアプリケーションは、特定のイベントが表示され、node.jsスクリプトがキューを監視し、それからイベントを1つずつ消費すると、このキューにプッシュします。そのようなイベントの1つでは、Batch REST APIを使用してこのイベントに関連する通知を送信します。キューのエントリの例には、受信者とペイロード、イベントタイプなどの追加データを識別するためにバッチで使用されるFirebaseユーザIDが格納されています。 – pkacprzak

+0

ええ。このキューベースのアプローチは、Firebaseのほとんどの開発者が使用する方法であり、非常にお勧めします(この古典的な[Firebaseを使用したアプリケーションアーキテクチャに関するブログ記事](https://www.firebase.com/blog/2013-03 -25-where-does-firebase-fit.html))。私はあなたがバッチを介してデバイスから別のデバイスに(確実に)プッシュできるかどうか疑問に思っていました。私はどのようにbtw、それは純粋に好奇心だったのか分からない。 –

0

特定の答えを提供するために、問題の十分な情報がありませんので、これは一般的な思考のより多くのです。

私は、Firebaseの組み込みパワーを活用して、その周囲をプッシュで回避することをお勧めします。

Firebaseイベントは、インスタントでライブであり、豊富な情報を提供します。これらのイベントを処理するために別個のサーバーやホストは必要ありません。

簡単な例

users 
    uid_0 
    name: "Picard" 
    uid_1 
    name: "Riker" 

やゲーム&は、このような構造でだから、プレイヤーのログをノード

games 
    game_id_1701 
    players 
     uid_0: true 
     uid_1: true 
    turns 
     turn_id_0 
     player_id: uid_0 
     event: "powered up weapons" 
     turn_id_1 
     player_id: uid_1 
     event: "engaged shields" 
     turn_id_2 
     player_id: uid_0 
     event: "fired photon torpedoes" 
     turn_id_3 
     player_id: uid_1 
     event: "shield impact, shields at 80%" 

をになり、この場合、プレーヤーのuid_0で、彼らはの一部であるすべてのゲームを、照会することができますuid_1がゲームをプレイしています。#1701

ゲームの一部を確立したら、そのゲームのターンノードを観察できます。ターンノードは、これまでに何が起こったかをユーザに提供する。 turn#、events etc.

その後、uid_0がturn_id_4でフェイザーを鳴らすような将来のイベントは、そのイベントのuid_1に通知します。

あり、この超簡単な例では、例えば

completed_turns 
    uid_0: true 
    uid_1: false 

これを設定するさまざまな方法の数十、両方uid_0があるとcompleted_turnsノードとするとき、彼らは自分の順番を完了を観察uid_1は、trueに、それぞれの子を設定しますもう一方はfalseに変更します。他のプレイヤーはそのイベントを通知され、その順番を取ることができます。

関連する問題