2015-10-23 144 views
2

使用gremlin-javascript模塊訪問遠程gremlin服務器。 我的代碼在app.js:錯誤:嘗試連接遠程gremlin服務器時連接ECONNREFUSED(TinkerPop3)

var gremlin = require('gremlin-client'); 
var client = gremlin.createClient(8182, 'localhost'); 
var query = client.stream('g.V()'); 
query.on('data', function(result) { 
    console.log(result); 
}); 
query.on('end', function() { 
    console.log("All results fetched"); 
}); 

這工作得很好,所有查詢都得到執行。但是,當我用我的遠程服務器地址--cbtitan.cloudapp.net替換'localhost'時,它將返回ECONNREFUSED錯誤。

我應該更改/做什麼來連接到該遠程服務器?或者我應該更改該遠程服務器中的任何配置嗎?我對這個問題非常困惑,請幫助我。提前致謝。

小鬼,server.yaml

host: localhost 
port: 8182 
threadPoolWorker: 1 
gremlinPool: 8 
scriptEvaluationTimeout: 30000 
serializedResponseTimeout: 30000 
channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer 
graphs: { 
    graph: conf/gremlin-server/titan-berkeleyje-server.properties} 
plugins: 
    - aurelius.titan 
scriptEngines: { 
    gremlin-groovy: { 
    imports: [java.lang.Math], 
    staticImports: [java.lang.Math.PI], 
    scripts: [scripts/empty-sample.groovy]}, 
    nashorn: { 
     imports: [java.lang.Math], 
     staticImports: [java.lang.Math.PI]}} 
serializers: 
    - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { useMapperFromGraph: graph }} 
    - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }} 
    - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { useMapperFromGraph: graph }} 
    - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { useMapperFromGraph: graph }} 
processors: 
    - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }} 
metrics: { 
    consoleReporter: {enabled: true, interval: 180000}, 
    csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv}, 
    jmxReporter: {enabled: true}, 
    slf4jReporter: {enabled: true, interval: 180000}, 
    gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST}, 
    graphiteReporter: {enabled: false, interval: 180000}} 
threadPoolBoss: 1 
maxInitialLineLength: 4096 
maxHeaderSize: 8192 
maxChunkSize: 8192 
maxContentLength: 65536 
maxAccumulationBufferComponents: 1024 
resultIterationBatchSize: 64 
writeBufferHighWaterMark: 32768 
writeBufferHighWaterMark: 65536 
ssl: { 
enabled: false} 
+0

請張貼 –

+0

我剛剛更新了我的小鬼,server.yaml文件@stephenmallette – manasa

+1

問題莫不是在客戶端和會阻止打開了WS連接遠程服務器之間的任何東西你小鬼服務器YAML配置文件? – jbmusso

回答

6

gremlin-server.yaml,你需要做一些修改。

您需要更新主機。默認值爲localhost,這意味着您只能從本地客戶端連接。您應該使用本機的IP地址,如果您想要在所有接口上偵聽,請使用0.0.0.0。

host: 0.0.0.0 

您應該使用WebSocketChannelizer代替HttpChannelizergremlin-javascript,因爲它是TinkerPop3小鬼服務器的WebSocket一個JavaScript客戶端。

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

是的,我試過了,但仍然是同樣的錯誤! – manasa

+0

這爲我在AWS上使用titanDB修復了它(channelizer已經是正確的),但是很好理解'host'是什麼意思。聽起來不像屬性名稱完全描述了它的用途。你有鏈接到任何(有用的)資源?我在使用gremlin-client js庫進行連接時遇到了問題,但我無法以解釋爲什麼拒絕客戶端連接的方式讀取「主機」。 –

相關問題