<div dir="ltr"><div><div><div><div><div>hello,<br><br></div>Thanks for all. The solution is to put the line at last<br> {<span class=""><span class="">"</span>/[...]<span class="">"</span></span>, <span class="">cowboy_static</span>, {<span class="">priv_dir</span>, <span class="">websocket_2</span>, <span class=""><span class="">"</span><span class="">"</span></span>}}<br><br></div>Now It works as I expect.<br><br></div>thanks for your help again.<br><br></div>br,<br></div>/Robi<br><div><div><div><div><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-23 11:09 GMT+02:00 Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Oh nice catch ahah. We should probably warn when something like this happens.<span class=""><br>
<br>
On 06/23/2015 11:06 AM, Graham Hay wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
I think the order of your routes is the problem, try putting this line<br></span>
<<a href="https://github.com/ethrbh/websocket_2/blob/master/src/websocket_2_app.erl#L17" rel="noreferrer" target="_blank">https://github.com/ethrbh/websocket_2/blob/master/src/websocket_2_app.erl#L17</a>><span class=""><br>
last.<br>
<br>
On 23 June 2015 at 09:56, Loïc Hoguin <<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a><br></span><div><div class="h5">
<mailto:<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>>> wrote:<br>
<br>
The {error, enoent}, especially there, is probably just because the<br>
browser is trying to fetch the favicon.<br>
<br>
Your issue is that Websocket won't connect, so it has nothing to do<br>
with cowboy_rest. Try tracing cowboy_websocket or enable SASL to<br>
have more info.<br>
<br>
<br>
On 06/23/2015 10:28 AM, Robert Balogh wrote:<br>
<br>
hello,<br>
<br>
First of all I would say I am a beginner in Cowboy web server, so<br>
probably I made something wrong, that is why I got the "fault",<br>
what I got.<br>
<br>
I would like to build up web page, where the client can<br>
communicate to<br>
server, and server can do the same to client, if client does not<br>
send<br>
anything to server too. The Cowboy has the websocket example,<br>
what does<br>
what I would like to do.<br>
<br>
There is only one thing is missing what I would like to have.<br>
This is<br>
the "frameset". My idea is to build the index.html using framsets. I<br>
made this changes, and I build up the html files for the frames,<br>
and of<br>
course I set these in the index.html.<br>
<br>
Here is how the index.html looks like<br>
<html><br>
<br>
<head><br>
<title>Welcome to Websocket example 2</title><br>
</head><br>
<br>
<frameset rows="64,*"><br>
<frame name="top_frame" noresize="noresize" scrolling="no"<br>
src="frame_top.html"><br>
<frameset cols="450,*"><br>
<frame name="left_frame" scrolling="auto"<br>
src="frame_left.html"><br>
<frame name="right_frame" src="frame_right.html"><br>
</frameset><br>
<noframes><br>
<body><br>
<br>
</body><br>
</noframes><br>
</frameset><br>
<br>
</html><br>
<br>
This is how the priv folder looks like<br>
-----------------------------------------------------------<br>
ls priv/<br>
frame_left.html frame_right.html frame_top.html<br>
index.html static<br>
<br>
This is how I changed the websocket_2_app:start/2 function<br>
-----------------------------------------------------------<br>
Dispatch = cowboy_router:compile([<br>
{'_', [<br>
<br>
{"/", cowboy_static, {priv_file, websocket_2,<br>
"index.html"}},<br>
{"/[...]", cowboy_static, {priv_dir, websocket_2,<br>
""}},<br>
<br>
{"/websocket_2", ws_handler_2, []},<br>
{"/static/[...]", cowboy_static, {priv_dir,<br>
websocket_2,<br>
"static"}}<br>
]}<br>
]),<br>
<br>
After compile and make release package of the app, I can reach the<br>
webserver on the port 8080, but some connection does not set up<br>
correctly. The following texts are present in the browser<br>
DISCONNECTED<br>
<br>
ERROR: undefined<br>
<br>
Connecting to: ws://localhost:8080/websocket_2<br>
<br>
I made a dbg trace on all cowboy modules, to start some kind of<br>
troubleshooting. In the "tons" of printout I can see this one.<br>
So in the<br>
bottom of this, there is an {error,enoent}. It comes when tries<br>
connect<br>
to the socket. But unfortunatelly I do not have idea what may<br>
cause this :-(<br>
<br>
The part of trace<br>
-----------------------------------------------------------<br>
(<0.177.0>) call<br>
cowboy_rest:next({http_req,#Port<0.646>,ranch_tcp,keepalive,<0.177.0>,<<"GET">>,'HTTP/1.1',<br>
{{127,0,0,1},33241},<br>
<<"localhost">>,undefined,8080,<<"/websocket_2">>,<br>
[<<"websocket_2">>],<br>
<<>>,undefined,[],<br>
[{<<"host">>,<<"localhost:8080">>},<br>
{<<"connection">>,<<"Upgrade">>},<br>
{<<"pragma">>,<<"no-cache">>},<br>
{<<"cache-control">>,<<"no-cache">>},<br>
{<<"upgrade">>,<<"websocket">>},<br>
{<<"origin">>,<<"<a href="http://localhost:8080" rel="noreferrer" target="_blank">http://localhost:8080</a>">>},<br>
{<<"sec-websocket-version">>,<<"13">>},<br>
{<<"user-agent">>,<br>
<<"Mozilla/5.0 (X11; Linux i686)<br>
AppleWebKit/537.36<br>
(KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36">>},<br>
{<<"accept-encoding">>,<<"gzip, deflate, sdch">>},<br>
{<<"accept-language">>,<<"en-US,en;q=0.8">>},<br>
<br>
{<<"sec-websocket-key">>,<<"by/gwaQvb/51W7Wa9zrGQg==">>},<br>
{<<"sec-websocket-extensions">>,<br>
<<"permessage-deflate;<br>
client_max_window_bits">>}],<br>
[{<<"connection">>,[<<"upgrade">>]}],<br>
<br>
undefined,[],waiting,<<>>,undefined,false,waiting,[],<<>>,undefined},{state,[{handler,cowboy_static},<br>
{handler_opts,{priv_dir,websocket_2,[]}},<br>
{listener,http},<br>
{dispatch,[{'_',[],<br>
[{[],[],cowboy_static,<br>
<br>
{priv_file,websocket_2,"index.html"}},<br>
<br>
{['...'],[],cowboy_static,{priv_dir,websocket_2,[]}},<br>
<br>
{[<<"websocket_2">>],[],ws_handler_2,[]},<br>
{[<<"static">>,'...'],<br>
[],cowboy_static,<br>
<br>
{priv_dir,websocket_2,"static"}}]}]}],<br>
<<"GET">>,cowboy_static,<br>
<br>
{<<"/home/ethrbh/projects/github/websocket_2/_rel/websocket_2/lib/websocket_2-1/priv/websocket_2">>,<br>
{error,enoent},<br>
[]},<br>
<br>
undefined,[],undefined,[],undefined,[],undefined,false,undefined,<br>
undefined,undefined},#Fun<cowboy_rest.2.41839999>)<br>
(Timestamp: {1435,<br>
<br>
46126,<br>
<br>
935663})<br>
<br>
I guess, I did something very wrong, but I did not found what is<br>
that,<br>
thus I would like to get some help from you.<br>
<br>
Please find my small project in github:<br>
<a href="https://github.com/ethrbh/websocket_2" rel="noreferrer" target="_blank">https://github.com/ethrbh/websocket_2</a><br>
<br>
thanks for your help,<br>
/Robi<br>
<br>
<br>
<br>
_______________________________________________<br>
Extend mailing list<br></div></div>
<a href="mailto:Extend@lists.ninenines.eu" target="_blank">Extend@lists.ninenines.eu</a> <mailto:<a href="mailto:Extend@lists.ninenines.eu" target="_blank">Extend@lists.ninenines.eu</a>><span class=""><br>
<a href="https://lists.ninenines.eu/listinfo/extend" rel="noreferrer" target="_blank">https://lists.ninenines.eu/listinfo/extend</a><br>
<br>
<br>
--<br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" rel="noreferrer" target="_blank">http://ninenines.eu</a><br>
Author of The Erlanger Playbook,<br>
A book about software development using Erlang<br>
_______________________________________________<br>
Extend mailing list<br></span>
<a href="mailto:Extend@lists.ninenines.eu" target="_blank">Extend@lists.ninenines.eu</a> <mailto:<a href="mailto:Extend@lists.ninenines.eu" target="_blank">Extend@lists.ninenines.eu</a>><br>
<a href="https://lists.ninenines.eu/listinfo/extend" rel="noreferrer" target="_blank">https://lists.ninenines.eu/listinfo/extend</a><br>
<br>
<br>
</blockquote><div class="HOEnZb"><div class="h5">
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" rel="noreferrer" target="_blank">http://ninenines.eu</a><br>
Author of The Erlanger Playbook,<br>
A book about software development using Erlang<br>
</div></div></blockquote></div><br></div>