> :)
>
>
> On Wed, Mar 21, 2012 at 4:59 PM, Zoom.Quiet <
zoom...@gmail.com> wrote:
>>
>> 在 2012年3月21日 下午4:52,kindy <
kin...@gmail.com> 写道:
>> > 话说,
>> > 我也启动了 lua-resty-http 项目,但是还没来得及完成。
>>
>> - 好吼,好吼,一齐来搞哪
>> - 俺只是想先完成够自个儿用的,其它的根据实际增补了
>> - 主要是想整明白 什么为 openresty 开发扩展lua 模块
>> - 以便写成教程去教唆其它人,是也乎,是也乎 ;-)
>> 不过,这个怎么开始,就一直是满头汗哪,,,
>> curl(url="" = 'user=zq&passwd=123456')
>> 这种形式是俺可以接受的极限了
>> 以往 luacurl 的形式,就忒自虐了,,,
>>
>> > 当时计划使用 luasocket 的 http 部分 api 的。
>> > 使用 request 函数的。
>> >
>> >
http://w3.impa.br/~diego/software/luasocket/http.html#request
>> >
>> > 感觉 api 还不错。
>> >
>> > 虽然比较喜欢 curl 的命令行形式,但是各种语言里的封装都相当冗长,就放弃了。
>> >
>> > 同学加油。
>> >
>> > On Wed, Mar 21, 2012 at 4:48 PM, Zoom.Quiet <
zoom...@gmail.com>
>> > wrote:
>> >>
>> >> 一点点猜了,,
>> >> 俺想使用具名函式形式来发布主要的行为,
>> >> 但是
>> >> function curl(self, options )
>> >> ...
>> >>
>> >>
>> >>
https://github.com/ZoomQuiet/lua-resty-http/blob/master/lib/resty/http.lua#L13
>> >>
>> >> 这么定义后, 测试吼根本运行不能,,,
>> >> # Failed test 'TEST 2: GET only try lib creat how!? - pattern
>> >> "[error]" should not match any line in error.log but matches line "
>> >> 2012/03/21 16:44:34 [error] 50966\#0: *1 lua handler aborted: runtime
>> >> error: ...lua/lua-resty_mods/lua-resty-http/lib/resty/http.lua:14:
>> >> attempt to index local 'options' (a nil value),
>> >>
>> >> 同样的函式,俺在正当 openresty 环境中跑通了,,,
>> >> 这事儿怎么想?
>> >> - 难道,库,只能使用
>> >> local red = redis:new()
>> >> red:set_timeout(1000) -- 1 sec
>> >> ...
>> >> 这种形式发布?
>> >>
>> >> 在 2012年3月21日 下午4:26,Zoom.Quiet <
zoom...@gmail.com> 写道:
>> >> > 还在开始的破冰阶段,,,
>> >> > - 目前最大的问题是,如何将一正当的 resty lua 函式,包装成模块?
>> >> > - 俺猜:
>> >> > local mt = { __index = resty.http }
>> >> > function new(self)
>> >> > return setmetatable({ sock = tcp() }, mt)
>> >> > end
>> >> >
>> >> > 是关键,但是什么意思?
>> >> > - 简单的說,俺只是想将 ngx.socket.tcp 进行 cosoket 的url 抓取行为
>> >> > - 封装成形式上自然的命令式语句
>> >> > - 那么,在库形式中,俺只要更加个 self 参数到原先函式中就可以了?还是要注意些什么?
>> >> >
>> >> > 噢去噢,应该算 lua 问题,但是,放到 openresy 的语境中怎么想,一时没有找到说明
>> >> > - 生套现成的库进行改写中,,,
>> >> >
>> >> > 在 2012年3月21日 上午11:40,Zoom.Quiet <
zoom...@gmail.com> 写道:
>> >> >> 在 2012年3月21日 上午11:34,agentzh <
age...@gmail.com> 写道:
>> >> >>> On Wed, Mar 21, 2012 at 10:57 AM, Zoom.Quiet <
zoom...@gmail.com>
>> >> >>> wrote:
>> >> >>>>
>> >> >>>> - 设计的各种槽件都很基础,很直观
>> >> >>>> - 就是不知道实际使用中有什么隐藏技巧了
>> >> >>>> - 比如说: --- response_body_like
>> >> >>>> - 看官方文档没有提及附加参数的事儿
>> >> >>>> - 但是,见到
>> >> >>>> --- response_body_like chop
>> >> >>>> ^\d+\.\d+.\d+$
>> >> >>>> - 这儿的 chop 什么含义?
>> >> >>>>
>> >> >>>
>> >> >>> 这里的"附加参数"其实是 Test::Base(即 Test::Nginx 的基类)提供的"过滤器"。chop, chomp,
>> >> >>> eval 和
>> >> >>> trim
>> >> >>> 这些都是常用的 Test::Base 提供的标准过滤器。当然,用户也可以通过 Perl 代码定义自己的过滤器。
>> >> >>>
>> >> >>
>> >> >> - 怪不得建议先看 Test::Base
>> >> >> - 层层继承的吼,,,
>> >> >> 好的!
>> >> >>
>> >> >>> Test::Base 模块的过滤器的文档在这里:
>> >> >>>
>> >> >>>
http://search.cpan.org/perldoc?Test::Base#FILTERS
>> >> >>>
>> >> >>> 文档中提供了用户自定义过滤器的一个小例子。
>> >> >>>
>> >> >>> Best,
>> >> >>>
>> >> >>> -agentzh
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺:
http://about.me/zoom.quiet
文字协议:
http://creativecommons.org/licenses/by-sa/2.5/cn/
--