3

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

当我连接到时: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 服务器中。

4

2 回答 2

2

答案就在配置 YAML 文件中。

需要的是正确的通道器。

好的:

channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
于 2017-11-05T14:42:44.370 回答
1

连接到ws://localhost:8182/gremlin而不是ws://localhost:8182. 在 Apache TinkerPop文档和 go-gremlin README中有几个对它的引用。

于 2017-11-03T18:55:54.780 回答