8

関数を提供し、ストリームを返す 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 {}前に何も返さないようにしようとしましたが(上記のコードでコメントされているように)、それは役に立たず、これが解決策になるとは思いません。

後で実行時にデータをクライアントに送信できるように、ストリームを開いたままにする方法はありますか?

4

1 に答える 1