「ユーザー報告」の方に書いてありますが、「Tokyo Railways 2」の開発版v2.02を公開しました。
今回の修正は、先週5/29の公開テストプレーの際に発生した障害対応ですが、あの時の障害の現象が今一つ分からないんですよ。
きっかけはプレイヤーの一人の方のネットワーク障害だというのは間違いなさそうなのだが、その後にはいくつかのバグや性能上の問題が潜んでいる気がします。
最初の問題はネットワーク障害で参加者の一人のコネクションが応答しなくなり、同じ接続名で接続できなくなったという現象で、これはクライアントサイドの問題で、こちらで可能な対処には限りがあります。
次に、ネットワーク障害でコネクションが通信不能で宙ぶらりんになってしまっている状態で、このコネクションの切断をサーバー側で行ったのですが、このコマンドが応答がなかった。これは切断コマンドの設計上の問題ですね。応答がなくなったコネクションは切断もできなくなってしまうケースがあるようで、何時までも切断完了を待っていても仕方がありません。これをタイムアウトにしてコネクションを放棄するようにしたのが修正点の一つ。
3つ目の問題は、サーバー側で切断コマンドが帰ってこなくなったため、しかたなくサーバーを再起動したのですが、この時に更に問題発生。クライアント側でチャットのコンソールが更新されなくなってしまいました。これはクライアント側で記憶しているチャットのメッセージIDが、サーバーの再起動によってサーバー側で管理している最新のIDよりも大きな数字になってしまい、サーバー側に新たにたまったメッセージがクライアントでは既に取得済みのものと判断してしまった問題です。これに対しても今回の修正を掛けています。
4つ目の問題は、クライアント再起動によってチャットが更新されるようになったときに、サーバーに溜まったメッセージをクライアント側に反映するのに時間がかかったケースがありそうという事なのですが、これがよくわかっていません。そもそもこの現象が本当に発生していたかもよく分かっておらず、プレイヤーの断片的なコメントから推測しているのに過ぎない状況です。プロトコルを再度検証したが、特に問題点は見当たらず、しかたなく今回は負荷の減少と応答性の改善を図るように最適化したに過ぎません。
どちらにしろ、いろんなネット環境と接続してインターネット越しに接続してみないと確かなことがよくわからないので、しばらくはゲリラ的にテストをやっていこうと思ってます。
そこでユーザーの皆様のテストへの協力をお願いします。
テストのアナウンスはTwitterの@tokyorailwaysアカウントで行いますので、Twitterでアカウントを作成していな方は作成の上、@tokyorailwaysをフォロー願います。
テスト中にチャットでのやりとりに問題が生じたときにもこのアカウントでプレイヤーとのやりとりを行いますので、プレイ中にはこちらのカウントをチェックしてください。またチャットでのやりとりが困難な場合には@tokyorailways宛にツィートを送信していただくようお願いします。
さっそくですが、本日21時(間もなくです)からテストプレーを実施します。
今後も同様にテストを行っていく予定ですので、ご協力お願いします。
0 件のコメント:
コメントを投稿