1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
<tt>
<div dir="ltr">I think the order of your routes is the problem, try putting this <a href="https://github.com/ethrbh/websocket_2/blob/master/src/websocket_2_app.erl#L17">line</a> last.</div><div class="gmail_extra"><br><div class="gmail_quote">On 23 June 2015 at 09:56, Loïc Hoguin <span dir="ltr"><<a href="mailto:[email protected]" target="_blank">[email protected]</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The {error, enoent}, especially there, is probably just because the browser is trying to fetch the favicon.<br><br>
<br><br>
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.<div><div class="h5"><br><br>
<br><br>
On 06/23/2015 10:28 AM, Robert Balogh wrote:<br><br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><br>
hello,<br><br>
<br><br>
First of all I would say I am a beginner in Cowboy web server, so<br><br>
probably I made something wrong, that is why I got the "fault", what I got.<br><br>
<br><br>
I would like to build up web page, where the client can communicate to<br><br>
server, and server can do the same to client, if client does not send<br><br>
anything to server too. The Cowboy has the websocket example, what does<br><br>
what I would like to do.<br><br>
<br><br>
There is only one thing is missing what I would like to have. This is<br><br>
the "frameset". My idea is to build the index.html using framsets. I<br><br>
made this changes, and I build up the html files for the frames, and of<br><br>
course I set these in the index.html.<br><br>
<br><br>
Here is how the index.html looks like<br><br>
<html><br><br>
<br><br>
<head><br><br>
<title>Welcome to Websocket example 2</title><br><br>
</head><br><br>
<br><br>
<frameset rows="64,*"><br><br>
<frame name="top_frame" noresize="noresize" scrolling="no"<br><br>
src="frame_top.html"><br><br>
<frameset cols="450,*"><br><br>
<frame name="left_frame" scrolling="auto"<br><br>
src="frame_left.html"><br><br>
<frame name="right_frame" src="frame_right.html"><br><br>
</frameset><br><br>
<noframes><br><br>
<body><br><br>
<br><br>
</body><br><br>
</noframes><br><br>
</frameset><br><br>
<br><br>
</html><br><br>
<br><br>
This is how the priv folder looks like<br><br>
-----------------------------------------------------------<br><br>
ls priv/<br><br>
frame_left.html frame_right.html frame_top.html index.html static<br><br>
<br><br>
This is how I changed the websocket_2_app:start/2 function<br><br>
-----------------------------------------------------------<br><br>
Dispatch = cowboy_router:compile([<br><br>
{'_', [<br><br>
<br><br>
{"/", cowboy_static, {priv_file, websocket_2, "index.html"}},<br><br>
{"/[...]", cowboy_static, {priv_dir, websocket_2, ""}},<br><br>
<br><br>
{"/websocket_2", ws_handler_2, []},<br><br>
{"/static/[...]", cowboy_static, {priv_dir, websocket_2,<br><br>
"static"}}<br><br>
]}<br><br>
]),<br><br>
<br><br>
After compile and make release package of the app, I can reach the<br><br>
webserver on the port 8080, but some connection does not set up<br><br>
correctly. The following texts are present in the browser<br><br>
DISCONNECTED<br><br>
<br><br>
ERROR: undefined<br><br>
<br><br>
Connecting to: ws://localhost:8080/websocket_2<br><br>
<br><br>
I made a dbg trace on all cowboy modules, to start some kind of<br><br>
troubleshooting. In the "tons" of printout I can see this one. So in the<br><br>
bottom of this, there is an {error,enoent}. It comes when tries connect<br><br>
to the socket. But unfortunatelly I do not have idea what may cause this :-(<br><br>
<br><br>
The part of trace<br><br>
-----------------------------------------------------------<br><br>
(<0.177.0>) call<br><br>
cowboy_rest:next({http_req,#Port<0.646>,ranch_tcp,keepalive,<0.177.0>,<<"GET">>,'HTTP/1.1',<br><br>
{{127,0,0,1},33241},<br><br>
<<"localhost">>,undefined,8080,<<"/websocket_2">>,<br><br>
[<<"websocket_2">>],<br><br>
<<>>,undefined,[],<br><br>
[{<<"host">>,<<"localhost:8080">>},<br><br>
{<<"connection">>,<<"Upgrade">>},<br><br>
{<<"pragma">>,<<"no-cache">>},<br><br>
{<<"cache-control">>,<<"no-cache">>},<br><br>
{<<"upgrade">>,<<"websocket">>},<br><br>
{<<"origin">>,<<"<a href="http://localhost:8080" rel="noreferrer" target="_blank">http://localhost:8080</a>">>},<br><br>
{<<"sec-websocket-version">>,<<"13">>},<br><br>
{<<"user-agent">>,<br><br>
<<"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36<br><br>
(KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36">>},<br><br>
{<<"accept-encoding">>,<<"gzip, deflate, sdch">>},<br><br>
{<<"accept-language">>,<<"en-US,en;q=0.8">>},<br><br>
{<<"sec-websocket-key">>,<<"by/gwaQvb/51W7Wa9zrGQg==">>},<br><br>
{<<"sec-websocket-extensions">>,<br><br>
<<"permessage-deflate; client_max_window_bits">>}],<br><br>
[{<<"connection">>,[<<"upgrade">>]}],<br><br>
<br><br>
undefined,[],waiting,<<>>,undefined,false,waiting,[],<<>>,undefined},{state,[{handler,cowboy_static},<br><br>
{handler_opts,{priv_dir,websocket_2,[]}},<br><br>
{listener,http},<br><br>
{dispatch,[{'_',[],<br><br>
[{[],[],cowboy_static,<br><br>
{priv_file,websocket_2,"index.html"}},<br><br>
<br><br>
{['...'],[],cowboy_static,{priv_dir,websocket_2,[]}},<br><br>
{[<<"websocket_2">>],[],ws_handler_2,[]},<br><br>
{[<<"static">>,'...'],<br><br>
[],cowboy_static,<br><br>
{priv_dir,websocket_2,"static"}}]}]}],<br><br>
<<"GET">>,cowboy_static,<br><br>
<br><br>
{<<"/home/ethrbh/projects/github/websocket_2/_rel/websocket_2/lib/websocket_2-1/priv/websocket_2">>,<br><br>
{error,enoent},<br><br>
[]},<br><br>
<br><br>
undefined,[],undefined,[],undefined,[],undefined,false,undefined,<br><br>
undefined,undefined},#Fun<cowboy_rest.2.41839999>)<br><br>
(Timestamp: {1435,<br><br>
<br><br>
46126,<br><br>
<br><br>
935663})<br><br>
<br><br>
I guess, I did something very wrong, but I did not found what is that,<br><br>
thus I would like to get some help from you.<br><br>
<br><br>
Please find my small project in github:<br><br>
<a href="https://github.com/ethrbh/websocket_2" rel="noreferrer" target="_blank">https://github.com/ethrbh/websocket_2</a><br><br>
<br><br>
thanks for your help,<br><br>
/Robi<br><br>
<br><br>
<br><br>
<br></div></div><br>
_______________________________________________<br><br>
Extend mailing list<br><br>
<a href="mailto:[email protected]" target="_blank">[email protected]</a><br><br>
<a href="https://lists.ninenines.eu/listinfo/extend" rel="noreferrer" target="_blank">https://lists.ninenines.eu/listinfo/extend</a><br><br>
<br><span class="HOEnZb"><font color="#888888"><br>
</font></span></blockquote><span class="HOEnZb"><font color="#888888"><br>
<br><br>
-- <br><br>
Loïc Hoguin<br><br>
<a href="http://ninenines.eu" rel="noreferrer" target="_blank">http://ninenines.eu</a><br><br>
Author of The Erlanger Playbook,<br><br>
A book about software development using Erlang<br><br>
_______________________________________________<br><br>
Extend mailing list<br><br>
<a href="mailto:[email protected]" target="_blank">[email protected]</a><br><br>
<a href="https://lists.ninenines.eu/listinfo/extend" rel="noreferrer" target="_blank">https://lists.ninenines.eu/listinfo/extend</a><br><br>
</font></span></blockquote></div><br></div><br>
</tt>
|