はじまり 汎用リアルタイム通信サーバーを設計するにあたり, 既存のプロトコルの採用ではなく独自プロトコルを作成したのでその時の考えなどをつらつらとまとめます. 前日譚 もともとフィーチャーフォン(ガラケー)向けブラウザゲームを作っていたので, スマホ時代になっても主要な通信は全て HTTP ベースで行われていました. そこそこのオーバーヘッドはありつつも, 社内外にノウハウは豊富ですしステートレスの恩恵を受けて信頼性の高いシステムを構築可能でした. しかしゲーム業界の方向性がより高頻度の双方向通信を求めるようになってきたことで, ステートフルな通信環境をどうすれば安定して運用できるかを考える必要が出てきました. 通信モデルを決める 独自開発を選択した理由については他の記事に譲るとして, ひとまず目的としては以下の一点です. 多クライアント間での双方向通信を可能にする ただ NAT 環境下に