为了账号安全,请及时绑定邮箱和手机立即绑定

导入`github.com/influxdb/influxdb/client/v2`包时缺少符号

导入`github.com/influxdb/influxdb/client/v2`包时缺少符号

Go
蛊毒传说 2021-12-07 16:06:08
在 Golang 中的 google cloud 上设置 web socket,并导入在我的本地机器上运行良好的代码在云上不起作用。我有:import "github.com/influxdb/influxdb/client/v2"并已运行go get "github.com/influxdb/influxdb/client/v2"运行 go run server.go 后,我得到:# command-line-arguments./pi_server.go:47: undefined: client.NewClient./pi_server.go:47: undefined: client.Config下面的完整代码,不包括 const 声明和 html:package mainimport (    "flag"    "html/template"    "log"    "net/http"    "github.com/gorilla/websocket"    "fmt"    "net/url"    "github.com/influxdb/influxdb/client/v2"    "time")var addr = flag.String("addr", "localhost:8080", "http service address")var upgrader = websocket.Upgrader{} // use default optionsfunc echo(w http.ResponseWriter, r *http.Request) {    //Influx init    u,err := url.Parse("http://localhost:8086")    checkError(err)    influx_c := client.NewClient(client.Config{            URL: u,            Username: username,            Password: password,     })    bp,err := client.NewBatchPoints(client.BatchPointsConfig{        Database:  MyDB,        Precision: "s",    })    tags := map[string]string{"my_sensor_id": my_sensor_id}    //end influx init    c, err := upgrader.Upgrade(w, r, nil)    if err != nil {        log.Print("upgrade:", err)        return    }    defer c.Close()    for {        mt, message, err := c.ReadMessage()        if err != nil {            log.Println("read:", err)            break        }        log.Printf("recv: %s", message)        /*            write to influx here        */         fields := map[string]interface{}{            "random_int":   message,            "other_stuff":  69696,        }        pt,err := client.NewPoint("test_collection", tags, fields, time.Now())        checkError(err)        bp.AddPoint(pt)        influx_c.Write(bp)        err = c.WriteMessage(mt, message)        if err != nil {            log.Println("write:", err)            break        }    }}func home(w http.ResponseWriter, r *http.Request) {    homeTemplate.Execute(w, "ws://"+r.Host+"/echo", )}
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

在此提交之前,您的本地机器有一个 github.com/influxdb/influxdb/client/v2 版本。您的云服务器正在获取更新版本的软件包。


要解决此问题,请运行


go get -u github.com/influxdb/influxdb/client/v2

在本地机器上获取最新版本的软件包。更新应用程序代码以使用新的函数和类型名称:


influx_c := client.NewHTTPClient(client.HTTPConfig{

        URL: u,

        Username: username,

        Password: password,

 })


查看完整回答
反对 回复 2021-12-07
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

搞定了,谢谢!另请注意以下代码:


influx_c,err := client.NewHTTPClient(client.HTTPConfig{

    Addr: "http://localhost:8086",

    Username: username,

    Password: password,

})

他们将 URL 字段更改为 Addr,使用的是字符串文字而不是 net/url 对象


查看完整回答
反对 回复 2021-12-07
  • 2 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信