首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应该在哪里定义"Cro Endpoint HTTP“?

应该在哪里定义"Cro Endpoint HTTP“?
EN

Stack Overflow用户
提问于 2018-07-07 21:00:29
回答 1查看 157关注 0票数 6

控制台在启动cro (“cro run”)后显示此消息:

代码语言:javascript
复制
▶ Starting JoanPujol (JoanPujol)
 **Endpoint HTTP will be at http://localhost:20000/**
 JoanPujol Listening at http://localhost:3000
 JoanPujol Shutting down...
♻ Restarting JoanPujol (JoanPujol)
 JoanPujol Listening at http://localhost:3000

我还没有弄清楚“端点HTTP”是在哪里定义的。这是我的“service.p6”:

代码语言:javascript
复制
use Cro::HTTP::Log::File;
use Cro::HTTP::Server;
use Routes;

constant HOST = 'localhost';
constant PORT = 3000;

my Cro::Service $http = Cro::HTTP::Server.new(
    :http<1.1>,
    host => HOST, 
    port => PORT,
    application => routes(),
    after => [
      Cro::HTTP::Log::File.new(logs => $*OUT, errors => %*ERR)
    ]
);
$http.start;
say "Listening at http://{HOST}:{PORT}";
react {
    whenever signal(SIGINT) {
        say "Shutting down...";
        $http.stop;
        done;
    }
}

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 22:37:26

cro开发工具会自动为要求运行的每个服务中的每个端点选择一个空闲端口。当有多个服务并且它们之间有指定的链接时,它还通过环境变量将选定的端口注入到相依服务。这使得可以设置一组服务,这些服务可以通过环境变量配置它们的端口,然后让cro run为每个服务分配一个端口并传播这些信息,这样服务就可以相互通信。

该消息指示自动选择了哪个端口号。但是,由于服务脚本只是重写了这些脚本,所以没有任何效果。若要禁用此功能并删除消息,删除.cro.yml文件中的端点列表项

如果希望将端口硬编码到服务脚本中,那么使用constant来声明端口可能比使用%*ENV更容易。

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

https://stackoverflow.com/questions/51226908

复制
相关文章

相似问题

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