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 <アプリ名>
でビルド、
$ ./<アプリ名>
で実行できる。