Titan Gremlin Server提供错误“不是WebSocket握手请求:缺少升级”

时间:2016-05-17 03:39:34

标签: titan gremlin rexster tinkerpop3 gremlin-server

我从网址

在EC2服务器上下载了Titan版本1.0

Titan 1.0.0 with Hadoop 1 – recommended

然后我用以下命令解压缩并运行titan服务器:

  

bin / titan.sh start

Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300).... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182).... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

然后我尝试从Titan 1.0版本的HTTP请求(在Titan 0.4版本Rexster工作正常) 但我得到了以下错误

  

不是WebSocket握手请求:缺少升级Titan 1.0 HTTP Request Error

1 个答案:

答案 0 :(得分:7)

使用默认设置,您无法通过HTTP连接连接到Titan v1.0.0。更准确地说,您无法通过HTTP连接到Gremlin Server。

使用Titan时,您还使用Apache TinkerPop framework中的Gremlin Server。 Gremlin Server接受WebSocket连接(默认)并将查询转发给Titan服务器。

对于TinkerPop v3.0.1附带的Titan v1.0.0(因此Gremlin服务器v3.0.1),您需要在HttpChannelizer文件中手动配置conf/gremlin-server/gremlin-server.yaml

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

另请参阅:TinkerPop v3.0.1 documentation: Connecting via REST

这将替换默认的WebSocketChannelizer,并允许您通过HTTP向Gremlin Server发送查询。当您运行./bin/titan.sh start时,您实际上正在启动Gremlin Server以及所有Titan相关的东西(Titan实例,Cassandra和Elasticsearch在默认设置中)。

如果您必须使用浏览器但仍希望使用WebSocket连接,则可以使用https://github.com/jbmusso/gremlin-javascript这是Gremlin Server的JavaScript(Node.js / Browser)客户端。它支持浏览器中的WebSocket连接。使用此设置时,您无需在gremlin-server.yaml文件中编辑任何内容。