【问题标题】:Using grpc with latest appengine sdk (golang 1.4.2)将 grpc 与最新的 appengine sdk (golang 1.4.2) 一起使用
【发布时间】:2016-03-03 18:34:16
【问题描述】:

使用最新的 appengine SDK,即 go version 1.4.2:

go get google.golang.org/grpc 由于对 http2 的依赖而失败,这显然不适用于当前的 appengine sdk 版本。似乎 http2 的东西只能从 1.6+ 获得:

从 Go 1.6 及更高版本开始

(参考:https://godoc.org/golang.org/x/net/http2

调用go get golang.org/x/net/http2 并没有修复错误

虽然我最初在使用谷歌云存储时发现了这一点,但似乎在整个库中都使用了它:https://github.com/GoogleCloudPlatform/gcloud-golang/search?utf8=%E2%9C%93&q=grpc

【问题讨论】:

    标签: google-app-engine go


    【解决方案1】:

    使用更新http2包

    go get -u golang.org/x/net/http2
    

    来自 go 命令的描述(https://golang.org/cmd/go/):

    -u 标志指示 get 使用网络更新命名的 包及其依赖项。默认情况下,get 使用网络 检查丢失的包,但不使用它来查找更新 现有的软件包。

    【讨论】:

      【解决方案2】:

      这原来是我的本地配置的问题:

      仅作记录...

      davidk-osx:Desktop davidk$ more ~/.bash_profile

      导出 GOROOT=/usr/local/go 导出 PATH=$PATH:$GOROOT/bin 导出 GOPATH=/Users/davidk/Documents/golang 导出 PATH=$GOPATH/bin:$PATH

      davidk-osx:桌面 davidk$ go 版本

      go 版本 go1.6 darwin/amd64

      davidk-osx:桌面 davidk$ /Applications/go_appengine/goapp 版本

      go 版本 go1.4.2 (appengine-1.9.33) darwin/amd64

      davidk-osx:桌面 davidk$ mkdir ./TEMP_GOPATH davidk-osx:Desktop davidk$ export GOPATH=/Users/davidk/Desktop/TEMP_GOPATH davidk-osx:桌面 davidk$ 去获取 google.golang.org/grpc davidk-osx:Desktop davidk$ 去获取 google.golang.org/cloud/storage

      (即一切都很好,但后来...)

      davidk-osx:Desktop davidk$ export GOPATH=/Users/davidk/Documents/golang davidk-osx:桌面 davidk$ 去获取 google.golang.org/grpc

      # google.golang.org/grpc/transport ../Documents/golang/src/google.golang.org/grpc/transport/http2_client.go:678:未定义:http2.MetaHeadersFrame ../Documents/golang/src/google.golang.org/grpc/transport/http2_client.go:774:未定义:http2.MetaHeadersFrame ../Documents/golang/src/google.golang.org/grpc/transport/http2_server.go:140:未定义:http2.MetaHeadersFrame ../Documents/golang/src/google.golang.org/grpc/transport/http2_server.go:253:未定义:http2.MetaHeadersFrame ../Documents/golang/src/google.golang.org/grpc/transport/http_util.go:279:f.fr.ReadMetaHeaders 未定义(类型 *http2.Framer 没有字段或方法 ReadMetaHeaders) davidk-osx:桌面 davidk$

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-12
        • 2021-08-07
        • 2022-08-07
        • 1970-01-01
        • 2021-11-13
        • 2019-08-03
        相关资源
        最近更新 更多