首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seneca-web超时配置

Seneca-web超时配置
EN

Stack Overflow用户
提问于 2017-02-15 23:34:39
回答 1查看 678关注 0票数 0

首先,我想说,我是新来的。

我正在测试这个配置。

我已经配置了运行在端口9007上的Senecjs微服务,它正在正确地运行和处理请求。当我直接请求此服务时,我会在cca 10之后接收响应(这是对oracle数据的请求)。

但是,当我请求相同的数据时,但通过Hapi +Seneca,我会收到以下错误:"statusCode":504,“error”:“网关超时”

代码语言:javascript
复制
["client","invalid_origin",{"port":9007,"pin":"mc:bankgtw","pg":"mc:bankgtw","type":"web","id":"pg:mc:bankgtw,pin:mc:bankgtw,port:9007","role":"transport","hook":"client","plugin$":{"name":"client$"},"fatal$":true,"meta$":{"mi":"wbn8u45tb7uh","tx":"o3f8eyia3f4n","id":"wbn8u45tb7uh/o3f8eyia3f4n","pattern":"hook:client,role:transport,type:web","action":"(q1yytemztu3k)","plugin_name":"transport","plugin_tag":"-","prior":{"chain":[],"entry":true,"depth":0},"start":1487199713842,"sync":true},"tx$":"o3f8eyia3f4n","host":"0.0.0.0","path":"/act","protocol":"http","timeout":5555,"max_listen_attempts":11,"attempt_delay":222,"serverOptions":{}},{"kind":"res","res":null,"error":{"isBoom":true,"isServer":true,"output":{"statusCode":504,"payload":{**"statusCode":504,"error":"Gateway Time-out**","message":"Client request timeout"},"headers":{}}},"sync":true,"time":{"client_recv":1487199799177}}] 

在微服务返回数据之前的几秒钟。

这是我的配置:

代码语言:javascript
复制
const Hapi = require('hapi');
const Seneca = require('seneca');
const SenecaWeb = require('seneca-web');

const config = {
  adapter: require('seneca-web-adapter-hapi'),
  context: (() => {
    const server = new Hapi.Server();
    server.connection({
      port: 3001,
      routes: {
            cors: true,
            payload:{timeout:60000},
            timeout:{server: 60000, socket:90000}
        }
    });

    server.route({
      path: '/routes',
      method: 'get',
      handler: (request, reply) => {
        const routes = server.table()[0].table.map(route => {
          return {
            path: route.path,
            method: route.method.toUpperCase(),
            description: route.settings.description,
            tags: route.settings.tags,
            vhost: route.settings.vhost,
            cors: route.settings.cors,
            jsonp: route.settings.jsonp,
            server: server.info
          }
        })
        reply(routes)
      }
    });

    return server;
  })()
};

const seneca = Seneca({timeout: 99999})
  .use(SenecaWeb, config)
  .use(require('./hapi_api.js'))
  .client({ port:9007,  pin:'mc:bankgtw' })
  .ready(() => {
    const server = seneca.export('web/context')();
    server.start(() => {
      server.log('server started on: ' + server.info.uri);
    });
  });

我做错了什么或者是什么导致了这一切?

EN

回答 1

Stack Overflow用户

发布于 2017-06-14 15:02:34

我也有过同样的问题,修复了它,但它的非常糟糕的实践。

转到seneca-传输文件夹中的“transport.js”。您将看到‘超时: 5555’,继续,并将其更改为任何您需要的。

我不知道为什么这不会得到用户的默认设置。据我所知,这是指客户端超时。确保您仍然使用服务器超时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42262133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档