问题标签 [cowboy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http - Erlang停止应用程序不会结束所有进程?
当我停止我构建的 Erlang 应用程序时,牛仔侦听器进程保持活动状态,继续处理请求。在我编写的 gen_server 中,我在 init 上启动了一个服务器。如下所示:
这将启动牛仔 http 服务器,它使用 cowboy_static 服务priv/app/
目录中的一些内容,并使用当前模块来处理自定义内容(模块实现了所有牛仔 http 句柄回调)。它获取从调用返回的 pid 并将其分配给handler_pid
状态记录。这一切都有效。但是,当我启动包含此模块(有效)的应用程序然后我停止它时。所有进程都结束(至少我的应用程序中的那些)。自定义处理程序(在与 gen_server 相同的模块中实现)不再起作用。但是 cowboy_static 句柄继续处理请求。它继续提供静态文件,直到我杀死节点。我尝试通过将其添加到 gen_server 来解决此问题:
但没有任何改变。cowboy_static 处理程序继续提供静态文件。
问题:
- 我在这里做错什么了吗?
- cowboy_static 是在牛仔应用程序下运行的吗?我想是的。
- 如果是这样,我该如何阻止它?
- 而且,我应该担心停止它吗?也许这没什么大不了的。
提前致谢!
erlang - 如何使用 Cowboy 下载文件?
我想从浏览器下载文件,我尝试通过牛仔来实现,但是我失败了,浏览器显示“从服务器收到重复标头。”。我不知道,请大家帮帮我。这是我的处理程序代码:`
erlang - 在牛仔中找不到包含库“rabbit_common/include/rabbit.hrl”
尝试在 OSX 下在 Erlang 中运行 RabbitMQ 教程示例,但失败并显示以下消息:
amqp_example.erl:
请帮我解决这个问题。感谢!!!
erlang - Cowboy 的路由选项的目的是什么?
Cowboy路由指南说,每条路径都被构造为一个元组,其中包括“在初始化时将给予它 [请求处理程序] 的选项”。但它没有解释选项的目的,而且我不确定如何使用它们,因为传递给处理程序的 Req 对象包含有关路径及其绑定的信息。
那么如果路由选项不包含任何唯一的路径信息,它们有哪些用例呢?
erlang - Erlang 主管进程
我一直在深入学习 Erlang,在完成了 Joe Armstrong 的“Programming Erlang”之后,我一直在回顾一件事。
在我看来,主管会为每个子处理程序生成一个进程。因此,每个声明的 gen_server 类型处理程序都将作为一个单独的进程运行。
如果您正在构建一个小型 Web 服务器,并且您希望每个请求都成为自己的进程,会发生什么情况。您是否仍然遵守 OTP 原则并以某种方式使用 gen_server(如何?),还是创建自己的行为?
例如,牛仔如何处理这个问题。? 它仍然使用 gen_server 吗?
erlang - 无法编译牛仔
我正在使用钢筋来安装牛仔,但是当我这样做时(在钢筋 get-deps 之后):
我越来越:
这就是我的 rebar.config 中的内容:
erlang - 牛仔连接进程以 enomem 终止
我遇到了牛仔错误
牧场侦听器 api_resource 在 <0.1822.0> 退出时以 cowboy_protocol:start_link/4 开始连接过程,原因是:enomem#012
在请求处理程序中,我通过 erlang 端口(c 语言)与另一个供应商的 tts 平台进行交互。对端口的第一个 tts 命令成功,我可以得到 1M 字节的数据,对端口的第二个 tts 命令成功发送到端口,但随后牛仔进程立即终止并出现上述错误消息。
我试图提高 erlang vm 的堆栈大小、堆大小、二进制虚拟堆大小和 os 的堆栈大小,没有帮助。
任何建议表示赞赏,谢谢。
代码:
rest - REST 文件上传 POST 请求的示例?
我正在尝试使用 Cowboy 在 Erlang 中创建一个 RESTful 服务器,但由于我对 HTTP 请求一无所知,我遇到了麻烦。我找不到 RESTful 文件上传请求的示例,只有一个普通的。
这适用于常规 HTTP 服务器(在 Cowboy 示例中找到)上传文件compile.sh
,其中包含git add * ; git commit -a -m "upload" ; git push
:
但是,如果我将此请求发送到 RESTful 服务器,我会收到以下响应:
现在,我可能做错了 RESTful 服务器,但我不确定。其中很多都封装在 Cowboy 中,所以我真的不知道它是如何工作的。RESTful 服务器的请求是否应该不同?
erlang - [Cowboy-Erlang]:使用提供的牛仔示例 web_server 精确指向 localhost:8080 时出错
我正在尝试这个 github 存储库提供的牛仔示例:
https://github.com/ninenines/cowboy/tree/master/examples/web_server
我使用 erlang.mk 成功构建了版本并运行以下命令,这将在我的 linux 终端中打开 Erlang shell:
但是当我 http://localhost:8080
在我的网络浏览器中打开时,我收到以下错误报告:
=错误报告==== 2014 年 11 月 26 日::14:33:48 === 节点“web_server_example@127.0.0.1”上的进程 <0.166.0> 出错,退出值:{function_clause,[{cowboy_req, ensure_response,[{ok,{http_req,#Port<0.454>,ranch_tcp,keepalive,<0.166.0>,<<3 bytes>>,'HTTP/1.1',{{127,0,0,1},57150 },<<9 字节>>,未定义,8080,<<1 字节>>,未定义,<<0 字节>>,未定义,未定义,[{<<4 字节>>,<<14 字节>>}, {<<10 字节>>,<<10 字节>>},{<<13 字节>>,<<9 字节>>},{<<6 字节>>,<<74 字节>>},{< <10 字节>>,<<104 字节>>},{<<15 字节>>,<<19 字节>>},{<<15 字节>>,<<35 字节>>}],[{< <10 字节>>,[<<10 字节>>]}],未定义,[],等待,<<0 字节>>,未定义...
=错误报告==== 2014 年 11 月 26 日::14:33:48 === 牧场侦听器 http 在 <0.166.0> 退出时使用 cowboy_protocol:start_link/4 启动了连接过程,原因是:{function_clause,[{ cowboy_req,ensure_response,[{ok,{http_req,#Port<0.454>,ranch_tcp,keepalive,<0.166.0>,<<"GET">>,'HTTP/1.1',{{127,0,0,1 },57150},<<"localhost">>,undefined,8080,<<"/">>,undefined,<<>>,undefined,undefined,[{<<"host">>,<<"localhost :8080">>},{<<"connection">>,<<"keep-alive">>},{<<"cache-control">>,<<"max-age=0">>} ,{<<"接受">>,<<"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8">>},{<<"user-agent">>,<<"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36" >>},{<<"accept-encoding">>,<<"gzip, deflate, sdch">>},{<<"accept-language">>,<<"sv-SE,sv;q= 0.8,en-US;q=0.6,en;q=0.4">>}],[{<<"connection">>,[<<"keep-alive">>]}],undefined,[],等待,<<>>,undefined,false,done,[],<<>>,undefined}},204],[{file,"src/cowboy_req.erl"},{line,1009}]},{ cowboy_protocol,next_request,3,[{file,"src/cowboy_protocol.erl"},{line,454}]}]}
这是第 454 行附近的“src/cowboy_protocol.erl”:
和 webb_server_app.erl 文件:
有没有人对究竟是什么导致这个问题以及如何解决它有任何建议?谢谢。
编辑:
我可以确认故障出在 Erlang OTP 版本 R16B02 中。更改为最新的 Erlang 版本 (17.3),以及解决在配置阶段出现的缺失文件依赖项(使用以下链接中的解决方案):
https://sites.google.com/site/comptekkia/erlang/how-to-install-erlang-on-ubuntu-10-10
解决了问题。web_server 示例现在可以正常运行。
websocket - 在芝加哥老板中通过 websocket 返回 boss_db 数据时出错
我正在尝试通过 websocket 连接返回使用 boss_db 获得的数据。在此示例中,我想返回我获取的问题,您可以看到日志打印出问题,但是有一些错误导致终止,原因是:返回值错误:好的。
以下是我的代码和错误:
更新
这是我更新的日志以及您的建议:
以下是提交“a”的示例请求的日志