4

I'm trying to connect to Gremlin which should be running on port 8182 ([INFO] GremlinServer$1 - Channel started at port 8182)

When I'm connecting to: ws://127.0.0.1:8182 I'm getting the response:

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

The Gremlin server responds with:

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

I'm using Gorilla Websocket in Go to connect:

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

UPDATE:
Connecting to echo.websocket.org works, so somehow it is something in the Gremlin server.

Bob van Luijt
  • 7,153
  • 12
  • 58
  • 101

2 Answers2

2

The answer lies in the config YAML file.

What is needed is the correct channelizer.

GOOD:

channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
Bob van Luijt
  • 7,153
  • 12
  • 58
  • 101
  • Jason's comment is relevant for 3.2.2 and above as well https://groups.google.com/forum/#!msg/gremlin-users/x4hiHsmTsHM/Xe4GcPtRCAAJ – Aaron Mar 23 '18 at 22:52
1

Connect to ws://localhost:8182/gremlin instead of ws://localhost:8182. There are several references to it in the Apache TinkerPop documentation and the go-gremlin README.

Jason Plurad
  • 6,682
  • 2
  • 18
  • 37