问题标签 [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.

0 投票
0 回答
488 浏览

erlang - 牛仔处理程序和自定义 gen_server 链接

我正在尝试实现与自定义 gen_servers 通信的 REST 处理程序。

从主管获取 gen_server 并链接到当前处理程序进程:

和 gen_server 代码:start_link() -> gen_server:start_link(?MODULE, [], [])。

因此,当牛仔发生错误时,我希望从 REST 处理程序向我的 gen_server 接收 EXIT 信号。但我没有收到。难道我做错了什么?

0 投票
2 回答
3042 浏览

erlang - 如何在牛仔的 REST POST 中设置状态码

如何在我的 REST POST 资源中设置状态代码。

现在我正在这样做

但我收到这样的错误:

1:43:10.510 [info] [nonode@nohost#pbshare_logic_registration#<0.205.0>] [handle_info#35]:从 <0.204.0> 退出逻辑原因:{function_clause,[{cowboy_req,reply,[204,[ ],<<>>,{http_req,#Port<0.6355>,ranch_tcp,keepalive,<0.204.0>,<<"POST">>,'HTTP/1.1',{{127,0,0,1} ,50024},<<"localhost">>,undefined,8080,<<"/rest/registration/make">>,[<<"make">>],<<>>,undefined,[],[ {<<"user-agent">>,<<"curl/7.29.0">>},{<<"host">>,<<"localhost:8080">>},{<<"accept" >>,<<" / ">>},{<<"content-type">>,<<"application/json">>},{<<"内容长度">>,<<"14">>}],[{<<"内容长度">>,14},{<<"预期">>,未定义},{<<"内容-length">>,14},{<<"content-type">>,{<<"application">>,<<"json">>,[]}},{<<"if-modified-因为">>,undefined},{<<"if-none-match">>,undefined},{<<"if-unmodified-since">>,undefined},{<<"if-match">> ,未定义},{<<"接受">>,[{{<<">,{<<"application">>,<<"json">>,[]}},{<<"if-modified-since">>,undefined},{<<"if-none-match" >>,undefined},{<<"if-unmodified-since">>,undefined},{<<"if-match">>,undefined},{<<"accept">>,[{{<< ">,{<<"application">>,<<"json">>,[]}},{<<"if-modified-since">>,undefined},{<<"if-none-match" >>,undefined},{<<"if-unmodified-since">>,undefined},{<<"if-match">>,undefined},{<<"accept">>,[{{<< "">>,<<"">>,[]},1000,[]}]}],undefined,[{charset,undefined},{media_type,{<<"application">>,<<"json">>,[]}} ],done,undefined,<<>>,false,done,[],<<>>,undefined}],[{file,"src/cowboy_req.erl"},{line,948}]},{cowboy_rest ,respond,3,[{file,"src/cowboy_rest.erl"},{line,1085}]},{cowboy_rest,upgrade,4,[{file,"src/cowboy_rest.erl"},{line,75 }]},{cowboy_protocol,execute,4,[{file,"src/cowboy_protocol.erl"},{line,523}]}]} 21:43:10.510 [错误] [Undefined#Undefined#emulator] [Undefined #Undefined] :进程 <0.204.0> 中的错误,退出值:{function_clause,[{cowboy_req,reply,[204,[],<<0 bytes>>,{http_req,#Port<0.6355>,ranch_tcp,keepalive ,<0.204.0>,<<4 bytes>>,'HTTP/1.1',{{127,0,0,1},50024},<<9 bytes>>,undefined,8080,<<23 bytes>>,[<<4 bytes>>],<<0 bytes>>,undefined,[],[{<<10 bytes>>,<<11 bytes>>} ,{<<4 字节>>,<<14 字节>>},{<<6 字节>>,<<3 字节>>},{<<12 字节>>,<<16 字节>>},{ <<14 字节>>,<<2 字节>>}],[{<<14 字节>>,14},{<<6 字节>>,未定义},{<<14 字节>>,14}, {<<12 字节>>,{<<11 字节>>,<<4 字节>>,[]}},{<<17 字节>>,未定义},{<<13 字节>>,未定义}, {<<19 字节>>,未定义},{<<8 字节>>,未定义...<4 字节>>,<<14 字节>>},{<<6 字节>>,<<3 字节>>},{<<12 字节>>,<<16 字节>>},{<<14字节>>,<<2 字节>>}],[{<<14 字节>>,14},{<<6 字节>>,未定义},{<<14 字节>>,14},{<< 12 字节>>,{<<11 字节>>,<<4 字节>>,[]}},{<<17 字节>>,未定义},{<<13 字节>>,未定义},{<< 19 字节>>,未定义},{<<8 字节>>,未定义...<4 字节>>,<<14 字节>>},{<<6 字节>>,<<3 字节>>},{<<12 字节>>,<<16 字节>>},{<<14字节>>,<<2 字节>>}],[{<<14 字节>>,14},{<<6 字节>>,未定义},{<<14 字节>>,14},{<< 12 字节>>,{<<11 字节>>,<<4 字节>>,[]}},{<<17 字节>>,未定义},{<<13 字节>>,未定义},{<< 19 字节>>,未定义},{<<8 字节>>,未定义...11 字节>>,<<4 字节>>,[]}},{<<17 字节>>,未定义},{<<13 字节>>,未定义},{<<19 字节>>,未定义}, {<<8 字节>>,未定义...11 字节>>,<<4 字节>>,[]}},{<<17 字节>>,未定义},{<<13 字节>>,未定义},{<<19 字节>>,未定义}, {<<8 字节>>,未定义...

在我回复之后,牛仔似乎再次尝试发送回复。但是我在 API 中没有任何其他可以更改状态代码的方法。

0 投票
2 回答
544 浏览

json - 牛仔和 jiffy websocket_handle 事件

我正在为我的 websocket 使用牛仔和 jiffy(Json 库)。我可以在我的 websocket_handle 中接收来自客户端的数据,因为现在我有与此类似的代码

       pattern1 -> ......... pattern2 -> .......... end, {ok, Res, State}

然而,我想在句柄级别进行模式匹配而不是这个......

问题是我不能在 websocket_handle 的参数中使用 jiffy:decode .. 所以我不能写类似的东西

如何让它工作??? 

0 投票
1 回答
365 浏览

erlang - 牛仔 websocket 终止错误

我正在实现牛仔 websocket。一切正常,除了当用户关闭浏览器时它会触发 websocket_termination 并且在服务器端它会生成以下错误:-

websocket_termination 中的代码是:-

0 投票
2 回答
5142 浏览

rest - 用于 POST 请求的 Erlang Cowboy Rest Handler

响应为415(不支持的媒体类型)

客户端代码:

服务器端代码:

如果我从客户端将类型从“POST”更新为“GET”,一切正常。

我错过了什么?

0 投票
1 回答
1114 浏览

erlang - 如何在 Cowboy 中使用 ws 和 wss 进行网络聊天?

我正在使用 Cowboy 和 gproc 通过 WebSockets 构建网络聊天。

现在,我想知道您是否可以向我介绍一些项目或资源或代码片段,以便从简单的 websocket (ws) 迁移到 web socket 安全连接 (wss)。

有什么方法可以修改关于 WebSockets 的牛仔示例来制作聊天应用程序?

0 投票
1 回答
1092 浏览

php - Erlang Cowboy 可以搭建 PHP 框架吗?

Cowboy 是一个用 Erlang 编写的小型、快速、模块化的 HTTP 服务器。

http://ninenines.eu

我们可以在上面架设PHP框架,比如wordpress吗?如何?

0 投票
1 回答
519 浏览

erlang - ab 测试中的 Erlang/cowboy 崩溃(套接字重置)

试用 Cowboy (Erlang) http 库,helloworld 示例:https ://github.com/extend/cowboy/tree/master/examples/hello_world

以这种方式使用 Apache 的“ab”测试工具时,我得到“连接重置”:

使用较小的值(例如 -n 5000 -c 1000)进行测试可以正常工作。

崩溃或重置 erl/Cowboy 进程可能是什么问题?我观察到Beam在顶部的内存使用情况,它增长到120MB,没有什么淫秽的(我在那个vm上有3G的RAM)。

ulimit 设置也相当慷慨:

erl/cowboy 可能有什么问题?

操作系统:Debian 7 x64。

0 投票
2 回答
2673 浏览

erlang - 具有重新连接功能的基于 websockets 的简单聊天系统

我见过很多使用 erlang 和 cowboy 实现的基于 websocket 的聊天室系统示例。

我见过的大多数示例都使用 gproc。实际上,每个 websocket 处理程序都会向 gproc 注册自己,然后从中广播/接收消息。

由于用户可能会意外关闭网页,我正在考虑连接到 websocket 处理程序的 gen_fsm,它实际上广播/接收来自 gproc 的所有消息。这样,只要用户退出,gen_fsm 就可以从“连接”状态切换到“断开”状态,并且仍然缓冲所有消息。一段时间后,如果用户没有重新联机,gen_fsm 将终止。

这是一个好的解决方案吗?如何使新的 websocket 处理程序恢复 gen_fsm 进程?我应该使用用户名注册 gen_fsm 还是有更好的解决方案?

0 投票
1 回答
341 浏览

erlang - 如何使用牛仔将参数发送到 websock 连接

在 toppage_handler.erl 中的牛仔 websocket 示例中

我想将参数 Echo 放入以下函数

例如:

本地主机:8080/?echo=123

在 ws_handler.erl