Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ルーム一覧の取得とルーム作成およびルーム入室をgraphQLからwebsocketでできるように変更 #21

Merged
merged 20 commits into from Jan 24, 2021

Conversation

YasuakiYoshii
Copy link
Collaborator

@YasuakiYoshii YasuakiYoshii commented Jan 10, 2021

概要

ルーム一覧の取得とルーム作成およびルーム入室をgraphQLからwebsocketでできるように変更.

動作確認

  1. サーバを起動する。参照
  2. 端末を2つ用意し、トップ画面からRoomlistタブを押す。(この段階でなぜかリストが表示されない
  3. Homeタブを押してもう一度Roomlistタブを押すと.ルームリストが表示される。
  4. 1つ目の端末でルームリストにあるルームを1つタップすると青い四角が出る。
  5. 2つ目の端末で1つ目と同じルームに入ると、端末間で青い四角オブジェクトの位置が同期する。
  6. 2つ目の端末でフローティングボタンから新しくルームを作る(自動的にルームに参加する)と、1つ目の端末とは位置が同期しない。

Updated

  • 一発目でリストが表示されるようにする -> ここを参考に解決 (cf59977)
  • ルーム入室時にそのルームにすでに入っている人がいる場合、すでに入っている人の位置と同期させる -> 3人目の場合非効率・危険 (5de9490)
  • ルームをルーム名ではなくidで管理&既に存在するルーム名の場合は作成できないように変更 (097eedc)
  • フローティングボタンにルーム一覧更新を追加

alt text

関連するサーバーサイドの変更

サーバー側でルームリストをjsonで返すように変更.(2d-rpg/card-playroom-server#16)

@YasuakiYoshii YasuakiYoshii changed the base branch from main to develop January 10, 2021 10:27
@bana118
Copy link
Collaborator

bana118 commented Jan 11, 2021

  • ScrollViewがあるとこちらの端末でフォームが以上に小さかったので消しました(remove scrollview)
  • ルーム入室直後に四角を動かすとWebSocketが開く前にsendしようとしてエラーになる可能性があったのでWebSocketがOPENのときだけsendするようにしました(send pan position only if websocket state is open)

@bana118
Copy link
Collaborator

bana118 commented Jan 11, 2021

  • 使用していないScrollViewのimportを削除

@bana118
Copy link
Collaborator

bana118 commented Jan 11, 2021

気になった点として

  • ルーム名が重複したら既存のルームに参加扱いになってる?
  • 四角を同時に動かそうとするとなんかすごい動きになるので同期の仕方は工夫が必要そう
  • ルームリスト更新ボタンはフローティングボタンに欲しいかも
    ただこれらはこのPRマージ後でいいと思う

src/screens/room-list/index.tsx Outdated Show resolved Hide resolved
src/screens/room-list/index.tsx Outdated Show resolved Hide resolved
src/screens/room-list/index.tsx Outdated Show resolved Hide resolved
@YasuakiYoshii
Copy link
Collaborator Author

気になった点として

* ルーム名が重複したら既存のルームに参加扱いになってる?

* 四角を同時に動かそうとするとなんかすごい動きになるので同期の仕方は工夫が必要そう

* ルームリスト更新ボタンはフローティングボタンに欲しいかも
  ただこれらはこのPRマージ後でいいと思う

1つめはそう.ルームをidではなく,ルーム名(string)で判別しているため.
2つ目は確認しますた.やばいなぁ...競合しちゃってるので何かしらの相互排他処理が必要かも
3つ目はtab押した時は更新しないようにするってこと??

@YasuakiYoshii YasuakiYoshii reopened this Jan 11, 2021
@bana118
Copy link
Collaborator

bana118 commented Jan 11, 2021

気になった点として

* ルーム名が重複したら既存のルームに参加扱いになってる?

* 四角を同時に動かそうとするとなんかすごい動きになるので同期の仕方は工夫が必要そう

* ルームリスト更新ボタンはフローティングボタンに欲しいかも
  ただこれらはこのPRマージ後でいいと思う

1つめはそう.ルームをidではなく,ルーム名(string)で判別しているため.
2つ目は確認しますた.やばいなぁ...競合しちゃってるので何かしらの相互排他処理が必要かも
3つ目はtab押した時は更新しないようにするってこと??

ルーム作成時に重複したら,そのルームに参加っていうのはやばそう.いっそルーム名は重複しないようにサーバー側で作成してもいいかもしれない.
ルームリスト更新にタブ切り替えしてもらうっていうのはUI的によくないのでタブ押したときも更新ボタンを押したときも更新する,とした方がよさそう

@bana118
Copy link
Collaborator

bana118 commented Jan 11, 2021

  • setLoading -> setIsLoading に変数をリネーム
  • デフォルトエンドポイントをホームとルームリストで2回宣言しているのが無駄なのでホームのをエキスポートして使いまわすようにしました

@YasuakiYoshii
Copy link
Collaborator Author

YasuakiYoshii commented Jan 11, 2021

サーバ側のルームの実装にid持たせるように変更した方がいいかもね
プレイヤー人数とか取得できるとなお良いけど,並列処理バージョンでそれができるのか,,,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

同時にオブジェクト(またはカード)を動かしたときの挙動
2 participants