我尝试连接到应该在端口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服务器中就可以了。
答案 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