2002/05/14 - ロビーサーバの詳細

ロビーテスト公開。近頃は Pha-jtd 氏とメッセンジャ代わりに使ってるのでそうバグってはないはずってことで。使い方はウェザタイページに書いたのでここでは内部構造を少し。

  • ロビーが起動すると,Hi-HO の CGI を使ってアクティブサーバリストを取得する。
  • 現在サーバは denasu.to だけなので,denasu.to へ接続。ここで取得する IP を使って対戦を行うので,ルータ内であってもグローバル IP を認識出来る。(静的 NAT は必要だけど)
  • パスワードに関しては,パスワードを入れた人はサーバのデータベースに insert され,パスワードを知らないと同じハンドルでは利用できなくなる。
  • サーバ自体は java で動いており,サーバに常駐し,接続が来るのを絶えず待ち受けている。
  • ユーザが接続した後は,テキスト形式のコマンドをサーバ・クライアントで送り合う。
  • ホスト・接続機能では,ホストの IP をクライアント側に通知し,その後は P2P で通信しあう。
  • 無通信で切断されるのを防ぐため,一定時間ごとに小さなメッセージをサーバに送る。一定時間内にそれが届かなければ強制ログアウトされる。

このような流れになっている。あまり多人数で試していないので,どのくらいの通信量までサーバが耐えられるのか不明。ひょっとすると高速回線が使えるようになるかも知れないので,負荷が多いようであれば乗り換えるかも。

最後に今後の機能としては,

  • アイコンなどのデザインをもっとよくしたい
  • ロビークライアントが lobby.exe では素っ気なさすぎる
  • チャットでの URL リンク(RichEdit2.0 を使えば楽にできるらしいが,DLL が古いなどの問題が出やすくなるので保留)
  • 指定時間 PC を操作しないと「アイドル」状態になる機能(グローバルフックをかけるためには外部 DLL を作り,配布する必要があり,これも保留)

てなところ。

ロビーのテストが終わったらウェザタイ本体と一緒にして,新ワードも含め,正式バージョンアップ予定。1.6 というよりは 2.0 かも。


その後,ロビーを公開して早速何人か来て下さったのだが,どうもロビーが落ちることがある。恐らく排他制御関連だと思うのだが,原因はまだ不明。それ以外は一応動いているようだった。

コメントする