駄文型

プログラミングとか英語とかの話題を中心にした至極ちゃらんぽらんな日記です。

Go言語でWebSocketを使ったチャットアプリを作ってみた

Rubyにもだんだん慣れてきたので、今度はGoを触ってみようと思ってGo言語によるWebアプリケーション開発を買ってみた。Goを学びながらチュートリアル形式でいい感じのWebアプリを作ることができる。そこそこ高度な内容っぽかったので、Goの基本的な文法などはA Tour of Goで予習しておいた。

アプリのソースはGitHubに公開した。今はまだ基本機能だけで、チャット画面を複数のタブやウィンドウで開くと、Postした内容が同期されるだけ。今後進めていけば、OAuth2でのログインやプロフィール画像の設定などが行えるようになる。

追記:OAuth2によるログインやSNSからのプロフィール画像の取得までは実装した。まだプロフィール画像のアップロード機能などが残っているが、いまのところそこまではやらない予定。

タイトルはWebアプリケーションだが、コマンドラインツールやREST形式APIなども対象としている。この本に沿って開発を進めていけば結構幅広くWeb開発を学べそう。GWはこれをいっきに進めようと思う。

以下メモ。

Goのインストール

$ brew install go

Goの設定

環境変数

環境変数GOPATH等の設定が必要なので、僕の場合は以下のように.zshrcに追記した。

export GOROOT=/usr/local/opt/go/libexec
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

goimportsのインストール

$ go get golfing.org/x/tools/cmd/goimports

と実行してgoimportsをインストールする。そうすると、

$ goimports -w *.go

と実行するだけでソース内で使用されているのにインポートされていないパッケージを自動でインポートの文を挿入してくれる。

Goの実行

ソースファイルが1つだけの場合は、

$ go run app.go

コンパイル、実行できる。複数のファイルに分けた場合は、

$ go build -o <アプリ名>

でビルド、

$ ./<アプリ名>

で実行できる。

参考

[asin:4798142417:detail]

[asin:4863541783:detail]

あわせてどうぞ