summaryrefslogtreecommitdiffstats
path: root/archives/extend/attachments/20130920/4c005881/attachment.html
blob: ea5cc3a0c23558dd3cef3371d1b58ea86257d690 (plain) (blame)
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
<tt>
&lt;div&nbsp;dir=&quot;ltr&quot;&gt;Understand&nbsp;about&nbsp;chunks&nbsp;being&nbsp;synchronous.&nbsp;that&nbsp;helps&nbsp;me&nbsp;tremendously&nbsp;to&nbsp;understand&nbsp;how&nbsp;it&nbsp;works.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;would&nbsp;you&nbsp;give&nbsp;me&nbsp;a&nbsp;sketchy&nbsp;example&nbsp;of&nbsp;how&nbsp;to&nbsp;use&nbsp;send_after&nbsp;in&nbsp;a&nbsp;loop&nbsp;handler?&nbsp;(sorry&nbsp;I&nbsp;am&nbsp;new&nbsp;to&nbsp;erlang)&lt;/div&gt;<br>
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Konstantin&lt;/div&gt;&lt;/div&gt;&lt;div&nbsp;class=&quot;gmail_extra&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div&nbsp;class=&quot;gmail_quote&quot;&gt;2013/9/20&nbsp;Loïc&nbsp;Hoguin&nbsp;&lt;span&nbsp;dir=&quot;ltr&quot;&gt;&lt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&gt;&lt;/span&gt;&lt;br&gt;<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;chunk&nbsp;only&nbsp;returns&nbsp;when&nbsp;the&nbsp;client&nbsp;has&nbsp;received&nbsp;the&nbsp;chunk,&nbsp;so&nbsp;the&nbsp;timestamps&nbsp;solution&nbsp;should&nbsp;work.&lt;br&gt;<br>
&lt;br&gt;<br>
As&nbsp;for&nbsp;the&nbsp;timeout,&nbsp;you&nbsp;can&nbsp;simply&nbsp;use&nbsp;erlang:send_after&nbsp;or&nbsp;something&nbsp;like&nbsp;usual&nbsp;and&nbsp;the&nbsp;message&nbsp;will&nbsp;arrive&nbsp;in&nbsp;info/3.&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
On&nbsp;09/20/2013&nbsp;08:54&nbsp;PM,&nbsp;akonsu&nbsp;wrote:&lt;br&gt;<br>
&lt;/div&gt;&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;&lt;div&nbsp;class=&quot;im&quot;&gt;<br>
thanks!&lt;br&gt;<br>
&lt;br&gt;<br>
how&nbsp;to&nbsp;implement&nbsp;timeout&nbsp;callback&nbsp;manually?&nbsp;if&nbsp;I&nbsp;had&nbsp;receive&nbsp;then&nbsp;I&lt;br&gt;<br>
would&nbsp;just&nbsp;use&nbsp;timeout&nbsp;clause&nbsp;there,&nbsp;but&nbsp;with&nbsp;the&nbsp;handler&nbsp;I&nbsp;do&nbsp;not&nbsp;know...&lt;br&gt;<br>
&lt;br&gt;<br>
I&nbsp;have&nbsp;doubts&nbsp;about&nbsp;validity&nbsp;of&nbsp;my&nbsp;question&nbsp;on&nbsp;the&nbsp;erlang&nbsp;list.&nbsp; I&nbsp;later&lt;br&gt;<br>
realised&nbsp;that&nbsp;there&nbsp;is&nbsp;no&nbsp;problem&nbsp;receiving&nbsp;messages&nbsp;in&nbsp;my&nbsp;handler&nbsp;from&lt;br&gt;<br>
my&nbsp;upstream&nbsp;process,&nbsp;I&nbsp;can&nbsp;do&nbsp;it&nbsp;fast&nbsp;enough&nbsp;and&nbsp;shove&nbsp;everything&nbsp;to&nbsp;the&lt;br&gt;<br>
response.&nbsp;my&nbsp;real&nbsp;problem&nbsp;is&nbsp;to&nbsp;determine&nbsp;if&nbsp;the&nbsp;http&nbsp;client&nbsp;is&nbsp;reading&lt;br&gt;<br>
fast&nbsp;enough&nbsp;from&nbsp;the&nbsp;response...&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
2013/9/20&nbsp;Loïc&nbsp;Hoguin&nbsp;&lt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&nbsp;&lt;mailto:&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&gt;&gt;&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp;Loop&nbsp;handlers&nbsp;close&nbsp;after&nbsp;a&nbsp;while&nbsp;regardless&nbsp;of&nbsp;what&nbsp;you&nbsp;send,&nbsp;it&lt;br&gt;<br>
 &nbsp; &nbsp;only&nbsp;checks&nbsp;what&nbsp;the&nbsp;client&nbsp;sends.&nbsp;The&nbsp;best&nbsp;way&nbsp;for&nbsp;you&nbsp;would&nbsp;be&nbsp;to&lt;br&gt;<br>
 &nbsp; &nbsp;disable&nbsp;that&nbsp;timeout&nbsp;and&nbsp;handle&nbsp;it&nbsp;manually.&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp;As&nbsp;for&nbsp;the&nbsp;second&nbsp;question,&nbsp;I&#39;m&nbsp;still&nbsp;reading&nbsp;the&nbsp;thread&nbsp;on&lt;br&gt;<br>
 &nbsp; &nbsp;erlang-questions&nbsp;but&nbsp;I&#39;ve&nbsp;seen&nbsp;some&nbsp;good&nbsp;ideas&nbsp;about&nbsp;timestamps&nbsp;so&nbsp;far.&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp;On&nbsp;09/20/2013&nbsp;08:47&nbsp;PM,&nbsp;akonsu&nbsp;wrote:&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Hi,&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;I&nbsp;am&nbsp;using&nbsp;loop&nbsp;handler&nbsp;and&nbsp;I&nbsp;stream&nbsp;from&nbsp;it:&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;info({stream,&nbsp;Part},&nbsp;Req,&nbsp;S)&nbsp;-&gt;&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ok&nbsp;=&nbsp;cowboy_req:chunk(Part,&nbsp;Req),&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{loop,&nbsp;Req,&nbsp;S,&nbsp;hibernate};&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;I&nbsp;have&nbsp;two&nbsp;questions:&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;1.&nbsp;on&nbsp;timeouts&nbsp;cowboy&nbsp;sends&nbsp;204&nbsp;No&nbsp;Content.&nbsp;In&nbsp;my&nbsp;case&nbsp;it&nbsp;is&nbsp;not&nbsp;the&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;right&nbsp;response&nbsp;because&nbsp;I&nbsp;may&nbsp;have&nbsp;already&nbsp;sent&nbsp;some&nbsp;data.&nbsp;Is&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;there&nbsp;a&nbsp;way&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;to&nbsp;send&nbsp;a&nbsp;custom&nbsp;response?&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;2.&nbsp;how&nbsp;to&nbsp;check&nbsp;if&nbsp;the&nbsp;client&nbsp;is&nbsp;too&nbsp;slow&nbsp;and&nbsp;is&nbsp;not&nbsp;reading&nbsp;the&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;response&nbsp;stream&nbsp;fast&nbsp;enough?&nbsp;If&nbsp;this&nbsp;happens,&nbsp;then&nbsp;I&nbsp;need&nbsp;to&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;disconnect.&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;I&nbsp;can&nbsp;live&nbsp;without&nbsp;1.&nbsp;but&nbsp;I&nbsp;need&nbsp;to&nbsp;figure&nbsp;out&nbsp;2.&nbsp;Please&nbsp;help.&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;thank&nbsp;you!&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Konstantin&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;______________________________&lt;u&gt;&lt;/u&gt;___________________&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Extend&nbsp;mailing&nbsp;list&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&nbsp;&lt;mailto:&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;Extend@lists.&lt;u&gt;&lt;/u&gt;ninenines.eu&lt;/a&gt;&gt;&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;a&nbsp;href=&quot;http://lists.ninenines.eu:81/__listinfo/extend&quot;&nbsp;target=&quot;_blank&quot;&gt;http://lists.ninenines.eu:81/_&lt;u&gt;&lt;/u&gt;_listinfo/extend&lt;/a&gt;&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt;a&nbsp;href=&quot;http://lists.ninenines.eu:81/listinfo/extend&quot;&nbsp;target=&quot;_blank&quot;&gt;http://lists.ninenines.eu:81/&lt;u&gt;&lt;/u&gt;listinfo/extend&lt;/a&gt;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
 &nbsp; &nbsp;--&lt;br&gt;<br>
 &nbsp; &nbsp;Loďc&nbsp;Hoguin&lt;br&gt;<br>
 &nbsp; &nbsp;Erlang&nbsp;Cowboy&lt;br&gt;<br>
 &nbsp; &nbsp;Nine&nbsp;Nines&lt;br&gt;<br>
 &nbsp; &nbsp;&lt;a&nbsp;href=&quot;http://ninenines.eu&quot;&nbsp;target=&quot;_blank&quot;&gt;http://ninenines.eu&lt;/a&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;/div&gt;&lt;/blockquote&gt;&lt;span&nbsp;class=&quot;HOEnZb&quot;&gt;&lt;font&nbsp;color=&quot;#888888&quot;&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
--&nbsp;&lt;br&gt;<br>
Loïc&nbsp;Hoguin&lt;/font&gt;&lt;/span&gt;&lt;div&nbsp;class=&quot;HOEnZb&quot;&gt;&lt;div&nbsp;class=&quot;h5&quot;&gt;&lt;br&gt;<br>
Erlang&nbsp;Cowboy&lt;br&gt;<br>
Nine&nbsp;Nines&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;http://ninenines.eu&quot;&nbsp;target=&quot;_blank&quot;&gt;http://ninenines.eu&lt;/a&gt;&lt;br&gt;<br>
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;<br>

</tt>