如何在Go中连接到Gremlin Websocket?

时间:2017-11-03 16:26:30

标签: go websocket gremlin gremlin-server

我尝试连接到应该在端口8182上运行的Gremlin([INFO] GremlinServer$1 - Channel started at port 8182

当我连接到:ws://127.0.0.1:8182时,我收到了回复:

2017/11/03 17:20:04 ERROR: database with the name 'gremlin' gave an error when connecting: websocket: bad handshake.

Gremlin服务器响应:

[WARN] HttpGremlinEndpointHandler - Invalid request - responding with 400 Bad Request and no gremlin script supplied

我在Go中使用Gorilla Websocket连接:

gremlinGrpcAddress := fmt.Sprintf("ws://%s:%d/", f.config.Host, f.config.Port)

var dialer *websocket.Dialer

clientConn, _, err := dialer.Dial(gremlinGrpcAddress, nil)
if err != nil {
    return err
}

f.client = clientConn

更新
连接到echo.websocket.org可以工作,所以它在Gremlin服务器中就可以了。

2 个答案:

答案 0 :(得分:1)

连接到ws://localhost:8182/gremlin而不是ws://localhost:8182。在Apache TinkerPop documentation和go-gremlin README中有几个引用。

答案 1 :(得分:1)

答案在于配置YAML文件。

需要的是正确的信道化器。

GOOD:

channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer