CHaserのまともなサーバを作ろうと思ったら、微妙なものができた。
- Server
- CHaserクライアントからの接続を受け付ける
 - コマンドをManagerへ横流し
 
 - Manager
- Serverからのコマンドを処理して、クライアント用の結果(1000210222 とか)を返す
 - Browserからの指示も受ける
 - 中核
 
 - Browser
- 普通のブラウザ
 - Managerへ指示
 - ManagerのManager?
 - スコアもこっちで表示
 
 
- node と npm を入れる
 - npm で socket.io をインストール
 - このrepositoryをcone
 - node manager/manager.js
 - まともそうなブラウザから http://(hogehoge):3000/ へアクセス
 - python server/server.py
 - ブラウザを見ると、「testserverが繋いできた」的なことが書かれているので、「ServerID:testserver」として入力
 - マップをコピペして送信
 - CHaserのクライアントから (hogehoge):40000 とか :50000 へ接続
 - ブラウザの「開始」
 - 「Score」で眺める
 
- ログがいっぱい出る
 
- M(大文字) を押下すると、元の画面に戻る
 - 試合終了後、「←」を押下すると、1ターン前に戻れる
 - もちろん「→」も使える
 
- ブラウザのコンソールにいろいろ書かれる
 
あまりやっていません。 Pythonのバージョンは、2.7系でした。
- ブラウザが使えるのでそっち側は環境を選ばない
 - ブラウザはどれだけ繋いでも、常に同じ情報を確認できる
 - サーバプログラムもいくらでも繋げられる
 - 同時に複数試合ができる可能性
 - Python / JavaScript / (CSS) / (HTML) なので、改変しやすい
 - 履歴機能が使えるので、解説しやすい
 
- まともに動くか分からない
 - 環境構築が面倒臭すぎる
- セキュリティ上、「少なくともServerとManagerは同一ホスト、またはFWでガッチリ保護された場所」においておかないとマズそう。
 
 
- 再現機能
- Serverが吐いたログからManager側で再現…が理想?
 - でも、Serverでログを読んで、再現したほうが実装的には簡単な気がする
 
 - クライアント接続の改善
- どっちも繋いで来ないと、名前が取れない問題
 - multiprocessingを使うとクライアント側が堕ちてしまった
 
 - Map入力の改善
- D&D対応どうすっかなー俺もなー…。
 
 - マップ観測を途中から開始した場合、履歴機能がおかしい?
- ブロック積まれた場合もおかしい