関数を提供し、ストリームを返す GRPC サーバーがあります。ストリームをに保存したいmap[string]grpc.Stream
- これは今のところうまくいきます。
私の問題は、ストリームを返す関数がロジックを終了した後にストリームが閉じられることです。
これは、私がこれまでに持っているものです:
func (s *server) CheckConnection(initMessage *LighterGRPC.InitMessage, stream LighterGRPC.Lighter_CheckConnectionServer) error {
//Do something magic
streams[initMessage.DeviceID] = stream
error := stream.Send(&LighterGRPC.ColorMessage{DATA})
if error {
log.Println(error)
}
//Tried
//for { }
return error
}
私はすでに関数がリターンのfor {}
前に何も返さないようにしようとしましたが(上記のコードでコメントされているように)、それは役に立たず、これが解決策になるとは思いません。
後で実行時にデータをクライアントに送信できるように、ストリームを開いたままにする方法はありますか?