概要 前回の gRPCにおける各RPC方式の実装方法【Client streaming RPC】 - Carpe Diem に引き続き、最後はBidirectional streaming RPCの実装方法を紹介します。 チャットのようなリアルタイム通信や、大きなデータを少しずつ処理したい時、Simple RPCで毎回コネクションを張るコストを避けたい時などに有用です。 環境 golang 1.9.2 grpc 1.7.2 protobuf 3.4.0 成果物 最終的に出来たコードはこちら github.com 実装 リアルタイムで送信した文字列を大文字化するサービスを作ります。 proto ポイントはリクエスト・レスポンスの両方にstreamを付けることです。 syntax = "proto3"; package uppercase; service UppercaseService {