質問するログイン新規登録

質問編集履歴

2

頂いた提案は非常に理に適っており私も同意するため、質問の具体的なまとめの位置を変更。

2018/05/23 05:08

投稿

tomocrafter
tomocrafter

スコア33

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,11 @@
1
+ ### 先に質問のまとめ
2
+ 質問内容は
3
+ ・Redisを前提とし、もしもゲームサーバーが異常終了した場合にも対応できること
4
+ ・これではPubSubのオーバーヘッドがあるため、より高速なマッチメイキング
5
+ になります。些細な提案でも良いのでぜひ返答いただけたら嬉しい限りです。
6
+ また、teratailで初投稿となるため、至らない点も数多く存在するかと思いますが、ご了承ください。
7
+
1
- ### 前提・実現したいこと
8
+ ### 細かな前提・実現したいこと
2
9
  現在、Redisを使用して開発中のゲームのマッチメイキングシステムを作ろうと考えています。
3
10
 
4
11
  仕様では、ゲームサーバーでは一つのサーバーあたりスペックに左右されますがおよそ5~10ほどのゲームを同時進行できるようにしております。
@@ -27,11 +34,4 @@
27
34
  ```
28
35
  というHashMapにputし、プレイヤーを自分のサーバー(この場合、リクエストを受理したゲームサーバーになります。)へテレポートさせるパケットをLobbyサーバーに送信します。すると、プレイヤーはゲームサーバーにログインするのでそこからPlayerNameでゲームのIDを取得して、waiting_gameから取得したゲームに追加します。
29
36
 
30
- しかしこれでいくつかの問題が生じます。もしも、ゲームサーバーが予期せず強制的にシャットダウンなどがされた場合、Redisにwaiting_gameが残ってしまい、それを知る由もないロビーサーバーにいるプレイヤーがリクエストした際に、もうオンラインでないゲームサーバーへ接続しようとしてしまう可能性が出てきます。また、expireで期限を付けた場合も同様で、その期間内では接続を試みてしまう可能性があるのです。
31
-
32
- ### まとめ
33
- 質問内容は
34
- ・Redisを前提とし、もしもゲームサーバーが異常終了した場合にも対応できること
35
- ・これではPubSubのオーバーヘッドがあるため、より高速なマッチメイキング
36
- になります。些細な提案でも良いのでぜひ返答いただけたら嬉しい限りです。
37
- また、teratailで初投稿となるため、至らない点も数多く存在するかと思いますが、ご了承ください。
37
+ しかしこれでいくつかの問題が生じます。もしも、ゲームサーバーが予期せず強制的にシャットダウンなどがされた場合、Redisにwaiting_gameが残ってしまい、それを知る由もないロビーサーバーにいるプレイヤーがリクエストした際に、もうオンラインでないゲームサーバーへ接続しようとしてしまう可能性が出てきます。また、expireで期限を付けた場合も同様で、その期間内では接続を試みてしまう可能性があるのです。

1

自分の勘違いによりアカウントの開設は2015年だったようです。そのため訂正させていただきます。

2018/05/23 05:08

投稿

tomocrafter
tomocrafter

スコア33

title CHANGED
File without changes
body CHANGED
@@ -34,4 +34,4 @@
34
34
  ・Redisを前提とし、もしもゲームサーバーが異常終了した場合にも対応できること
35
35
  ・これではPubSubのオーバーヘッドがあるため、より高速なマッチメイキング
36
36
  になります。些細な提案でも良いのでぜひ返答いただけたら嬉しい限りです。
37
- また、teratailのアカウントを解説してから30分も経っていため至らない点も数多く存在するかと思いますが、ご了承ください。
37
+ また、teratailで初投稿とため至らない点も数多く存在するかと思いますが、ご了承ください。