連携して動くアプリです。今回のアプリはサーバー間の通信にWebSocketが使われているため、Proxy等の設定によってはアプリが正常に動作しない可能性もありますので、ご了承下さい。多人数シューティングゲーム今回の手順の概要は以下の通りです。sector.goGo言語で書かれたアプリです。MongoDBのある場所のIPアドレス。“127.0.0.1”。HTTPサーバからの接続待ち受けIPアドレス/PORT。“127.0.0.1:3223”。(参考)となっているようです。適切なタイミングで実行し・・・といった処理はできない可能性が高いです。Go言語とgo-buildpackの仕様を共にしっかりと理解している方であれば可能であるかもしれませんが、残念ながら私には今回の執筆期間ではそのような手段を編み出すことはできませんでした。幸いなことにGo言語には、binaryさえ作ってしまえば外部のライブラリ等に依存せずに実行ができるという強みがあります。Foundryで動作させる、という手段をとってみようと思います。Serviceを使います。ukaji...OKバインドも済ませておきましょう。事前準備MongoDB接続周りの修正1.2で作成したMongoDBに接続する箇所の修正を行います。見てみると、このアプリはデータベースのHost名とDatabase名のみで接続を行っています。Foundry上で作成したMongoDBのServiceにはUsername、Passwordが設定されているため、このままでは正しく接続することはできません。)を指定すればDBとの接続を行う」という方針で修正を行います。指定されている場合の動作にも影響が及ばないようにしましょう。MongoDBのデータベース情報を参照するURIが書かれていればそれを用いるようになりました。Host名だけを指定している場合はその場所を参照し、MongoDBに関する環境変数が何も与えられていない場合は、localhostを探しに行くという設定も生きています。今回はbinary-buildpackを使うので、ローカル環境でGoのbinaryを作ってしまいます。linux/amd64goのversionは1.4を用いています。shooter-servershooter-serverというbinaryファイルができていればOKです。今回デプロイに必要なのはこのbinaryファイルだけなので、余分なファイルをアップロードしないためにもbinaryファイルとmanifestファイルのみが入ったディレクトリを別に作っておきましょう。shooter-server今回はgo-serverという別の適当なディレクトリを用意しました。manifestファイルの中身はこのようになっています。binaryの起動とあわせて、ListenするPORT番号を環境変数から取得しています。見ることができるMongoDB接続のためのuriをそのまま記述しました。Foundryへのデプロイを行います。発行されたURLは後ほど使います。ソースコードの入手から。jsHTML+JavaScriptのアプリです。URLを、WebSocketの接続先として登録します。Linkが張られている所があります。Linkを無視する仕様になっています。Linkに変更しておきましょう。中身をCopyしたファイルを用意しておくのもOKです。manifestファイルの作成こちらもmanifestファイルを作っておきます。