2012-02-24 3 views
0

私の家族のためにこのカードゲームを私の家族とリモートで行うことを午前中です。 Windowsのようなものです。私はゲームの退屈なルールを説明する必要はありませんので、それは心だとしましょう。他のユーザーが電話をかけたときにWebサービスの発信者に「通知」するサーバー

3人以上のプレイヤーがいて、それぞれのプレイヤーは順番に床にカードを1枚捨てる。

私はビジネスロジックを持つデータベースとクラスライブラリを持ち、データベースを読み書きします。

今、私はいくつかの機能があります。

  • 新しいゲーム
  • スタートゲーム
  • チェックゲームのステータス =>床の上に何を返し選手を追加、発呼者の手札には何枚のカードがあるのか​​、対戦相手のカードが何枚あるのかそれは誰ですか、それはホストですか?
  • 移動する =>ユーザーは、特定のカードを使用することをサーバーに通知します。

私はクラスライブラリとWebMethodsを使って各機能を呼び出すWebサービスを持っています。 Webページ/スタンドアロンのexeでは、クラスライブラリを直接使用することも、Webサービスを呼び出して関数を使用することもできます。

他のプレイヤーがアクションを実行したことを他のユーザーに「通知」するための設計を考え出すのは苦労しています。私が考えてい可能なロジック:

  • コールチェックゲームの状態x秒ごとに物事が
  • が非同期コールバック機能で、「物事が変更された場合は私に知らせて、」Webメソッドを呼び出すかどうかを確認します。
    • タイムアウトするとどうなりますか?
    • ユーザーが途中でゲームを離れる場合はどうなりますか?

私に助けてください。

+1

のまさにこの種のために設計されましたASMXサービスを使用している。代わりにWCFを使用する必要があります。他の多くの機能の中でも、WCFは、ピアツーピアと通知の双方向通信チャネルをサポートしています。 –

+0

これを振り返ると、この簡単なアドバイスが私を大いに助けました。 – ToBeDeleted

答えて

0

多数のクライアントが存在しない限り、サービスをポーリングすることは許容されます。さらに、各クライアントは、WSに「ハートビート」信号を送信して、「はい、まだ接続しています」を示すことができます。この方法で、切断されたクライアントを検出できます。

あなたがポーリングしない場合は、あなたがプッシュ通知になります:あなたはいけない、その後、新しいコードを書いている場合はhttp://msdn.microsoft.com/en-us/library/windows/apps/hh465460.aspx

関連する問題