[99s-extend] Help to use frameset in index.html

Loïc Hoguin essen at ninenines.eu
Tue Jun 23 11:09:27 CEST 2015


Oh nice catch ahah. We should probably warn when something like this 
happens.

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

-- 
Loïc Hoguin
http://ninenines.eu
Author of The Erlanger Playbook,
A book about software development using Erlang


More information about the Extend mailing list