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

Loïc Hoguin essen at ninenines.eu
Tue Jun 23 10:56:02 CEST 2015


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
> 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