问题标签 [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.
erlang - 牛仔处理程序和自定义 gen_server 链接
我正在尝试实现与自定义 gen_servers 通信的 REST 处理程序。
从主管获取 gen_server 并链接到当前处理程序进程:
和 gen_server 代码:start_link() -> gen_server:start_link(?MODULE, [], [])。
因此,当牛仔发生错误时,我希望从 REST 处理程序向我的 gen_server 接收 EXIT 信号。但我没有收到。难道我做错了什么?
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 中没有任何其他可以更改状态代码的方法。
json - 牛仔和 jiffy websocket_handle 事件
我正在为我的 websocket 使用牛仔和 jiffy(Json 库)。我可以在我的 websocket_handle 中接收来自客户端的数据,因为现在我有与此类似的代码
pattern1 -> ......... pattern2 -> .......... end, {ok, Res, State}
然而,我想在句柄级别进行模式匹配而不是这个......
问题是我不能在 websocket_handle 的参数中使用 jiffy:decode .. 所以我不能写类似的东西
如何让它工作???
erlang - 牛仔 websocket 终止错误
我正在实现牛仔 websocket。一切正常,除了当用户关闭浏览器时它会触发 websocket_termination 并且在服务器端它会生成以下错误:-
websocket_termination 中的代码是:-
rest - 用于 POST 请求的 Erlang Cowboy Rest Handler
响应为415(不支持的媒体类型)。
客户端代码:
服务器端代码:
如果我从客户端将类型从“POST”更新为“GET”,一切正常。
我错过了什么?
erlang - 如何在 Cowboy 中使用 ws 和 wss 进行网络聊天?
我正在使用 Cowboy 和 gproc 通过 WebSockets 构建网络聊天。
现在,我想知道您是否可以向我介绍一些项目或资源或代码片段,以便从简单的 websocket (ws) 迁移到 web socket 安全连接 (wss)。
有什么方法可以修改关于 WebSockets 的牛仔示例来制作聊天应用程序?
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。
erlang - 具有重新连接功能的基于 websockets 的简单聊天系统
我见过很多使用 erlang 和 cowboy 实现的基于 websocket 的聊天室系统示例。
我见过的大多数示例都使用 gproc。实际上,每个 websocket 处理程序都会向 gproc 注册自己,然后从中广播/接收消息。
由于用户可能会意外关闭网页,我正在考虑连接到 websocket 处理程序的 gen_fsm,它实际上广播/接收来自 gproc 的所有消息。这样,只要用户退出,gen_fsm 就可以从“连接”状态切换到“断开”状态,并且仍然缓冲所有消息。一段时间后,如果用户没有重新联机,gen_fsm 将终止。
这是一个好的解决方案吗?如何使新的 websocket 处理程序恢复 gen_fsm 进程?我应该使用用户名注册 gen_fsm 还是有更好的解决方案?
erlang - 如何使用牛仔将参数发送到 websock 连接
在 toppage_handler.erl 中的牛仔 websocket 示例中
我想将参数 Echo 放入以下函数
例如:
本地主机:8080/?echo=123
在 ws_handler.erl