[Go言語]チャットアプリを作ろう!

こんにちは。KOUKIです。

Go言語で、簡単なチャットアプリを作ろう!というのが本記事の目的です。

チャットアプリケーションについて

本記事で作成するチャットアプリケーションは、CLI上で動作します。

イメージ図は、以下の通りです。

一番右側のコマンドラインでは、チャットサーバーを起動しています。

それ以外のコマンドラインでは、メッセージのやり取りを行なっています。

使用技術について

  • Go言語(go version go1.14 darwin/amd64)
  • gRPC

gRPCについて

チャットアプリケーションでは、gRPCを使います。

gRPCの概要やセットアップは、以下の記事を参考にしてください。

WebSockets版

実装

プロジェクトの作成

チャットサービスの作成

最初にgRPCにて、チャットサービスを作ります。

gRPCのサービスは、chat.protoファイルに記述します。

上記では、ユーザ名とメッセーを受け取れるChatMessageを定義しています。

また、Service Chatの引数としてstreamを指定しており、 複数データを送信できるようにしています。

protoファイルをコンパイルし、Goのコード内で使用できるようにするために、generate.shファイルに以下の記述をします。

terminal上から以下のコマンドを実行し、protoファイルをコンパイルします。

コンパイルに成功すると「chat.pb.go」ファイルが自動で生成されます。

ChatServerの実装

ChatServerのコードを実装します。

Clientの実装

client側を実装します。

実行

terminal(コマンドライン)を3つ立ち上げます。

まとめ

解説はほぼないですが、コードを見ていただければ、なんとなくわかると思います。

Go言語はこのようにgRPCと組み合わせることでChatアプリケーションを簡単に実装できます。

もっと色々と試して見たいですね。

それでは、また!

関連記事

参考書籍