func Connect(client pb.ChatClient, sid []byte) (events chan *pb.Event, err error) { req := pb.RequestConnect{ SessionId: sid, } stream, err := client.Connect(context.Background(), &req) if err != nil { return } events = make(chan *pb.Event, 1000) go func() { defer func() { close(events) }() for { event, err := stream.Recv() if err == io.EOF { return } if err != nil { log.Fatalln("stream.Recv", err) } events <- event } }() return }