摘要:今天又是早早下班,买了排骨,莲藕,现在正压着排骨莲藕汤,从小就学做饭,发现其实做饭也蛮多乐趣的。等这篇文章发布以后,我应该已经吃完很久了,哈哈。回到主题,上一篇,我们cowboy_http_protocol:dispatch/2 函数,今天我们来看cowboy_http_protocol:handler_init/2 函数:-spec handler_init(#http_req{}, #state{}) -> ok.handler_init(Req, State=#state{transport=Transport, handler={Handler, Opts}}) ->... 阅读全文
Cowboy 源码分析(二十一)
2012-06-25 00:39 by rhinovirus, 1770 阅读, 0 推荐, 收藏, 编辑
摘要:大家好,今天继续跟大家分享Cowboy的源码分析,这一篇,我们看下cowboy_http_protocol:onrequest/2函数,完整代码如下:%% Call the global onrequest callback. The callback can send a reply,%% in which case we consider the request handled and move on to the next%% one. Note that since we haven't dispatched yet, we don't know the%% handl 阅读全文
Go基础语法整理(一)
2012-06-24 15:10 by rhinovirus, 12259 阅读, 0 推荐, 收藏, 编辑
摘要:时间过的好快,转眼端午已经过去两天半了,今天在家里,静下心,看看书,写写文章。这一段时间,我除了看Cowboy源码,抽空看了下Go的基本语法,当然就是看之前在Ubuntu下使用Sublime Text 2搭建Go开发环境 这篇文章中跟大家推荐的《学习Go语言》0.4 中文版,今天抽空整理下基础知识点,毕竟看跟实践带来的效果是不同的。 变量、类型和保留字 Go在语法上有着类C的感觉,一般情况下,你不需要使用分号,除非你将两个(或更多)语句放在一行书写。 Go和ActionScript3一样,变量的类型在变量名的后面,例如: C#是: int a; 而Go则是 var a int; 如... 阅读全文
Cowboy 源码分析(二十)
2012-06-21 00:13 by rhinovirus, 1458 阅读, 0 推荐, 收藏, 编辑
摘要:大家好,这几天在忙游戏的端午节活动,在这里也提前跟大家说一声端午节快乐,如果你们的公司遵守国家规定,应该是放假三天,那么,大家想吃粽子吃粽子,想划龙舟划龙舟(不知道有没地方),不知道大家老家的粽子都是什么味道,映像最深刻的是小时候,端午节会有新的衣服穿,但是换之前需要用艾叶洗澡,好像我在北京都很少见过,还有就是老家的肉粽还是蛮让人怀念的。 好了,回到正题,上一篇,我们在文章最后,提到了在cowboy_http_req:response/5函数的最后给这个处理请求的进程发送了一个消息 {?MODULE, resp_sent}, 今天,我们来看下,这个进程收到这条消息,又会怎么做呢? 我们... 阅读全文
Cowboy 源码分析(十九)
2012-06-20 01:18 by rhinovirus, 1395 阅读, 0 推荐, 收藏, 编辑
摘要:这一篇,接着上一篇没有讲完的内容,继续来看cowboy_http_req:reply/4 函数,我们从下面这段代码开始: RespConn = response_connection(Headers, Connection), ContentLen = case Body of {CL, _} -> CL; _ -> iolist_size(Body) end, HTTP11Headers = case Version of {1, 1} -> [{<<"Connection">>, atom_to_connection(Conne 阅读全文
AS3版本的MaxRects算法测试
2012-06-19 14:00 by rhinovirus, 4619 阅读, 1 推荐, 收藏, 编辑
摘要:早上,在微博发现一条信息,关于MaxRects算法的,@杜增强DzQ 移植的关于AS3版本的MaxRects算法,具体地址是:http://www.duzengqiang.com/blog/post/971.html 代码如下:/*Based on the Public Domain MaxRectanglesBinPack.cpp source by Jukka Jylänkihttps://github.com/juj/RectangleBinPack/Based on C# port by Sven Magnus http://unifycommunity.com/wiki/i 阅读全文
Ubuntu下使用GDB断点Go程序
2012-06-15 02:19 by rhinovirus, 8968 阅读, 4 推荐, 收藏, 编辑
摘要:大家好,今天为大家带来Ubuntu下,使用GDB断点调试Go程序。由于之前没有接触过GDB调试,而Go语言本身内置也没有什么调试工具,不像Eralng,有Debugger可以使用,我从网上搜索了下,也没有相关的中文教程,所以这边自己研究了下,给新手带来一篇关于GDB简单调试Go程序的文章。(关于GDB的文章还是不少的) 首先,编写测试代码,如下:package mainimport ( "fmt")func main() { fmt.Printf("%s\n", "hello, world") printNumber()}func p 阅读全文
Cowboy 源码分析(十八)
2012-06-15 01:00 by rhinovirus, 1557 阅读, 0 推荐, 收藏, 编辑
摘要:在上一篇中,我们整理了下cowboy_http_protocol:header/3函数,在文章的末尾留下2个没有讲到的函数,今天,我们先看下cowboy_http_protocol:error_terminate/2函数,另一个函数下一篇,我们再看。cowboy_http_protocol:error_terminate/2函数定义如下:%% Only send an error reply if there is no resp_sent message.-spec error_terminate(cowboy_http:status(), #state{}) -> ok.error_ 阅读全文
Cowboy 源码分析(十七)
2012-06-13 00:54 by rhinovirus, 1682 阅读, 0 推荐, 收藏, 编辑
摘要:大家好,今天继续跟大家分享Cowboy,我发现最近有点慢,没有刚开始写的那么凶猛了,自己想了想:一个是时间上没办法保证了,另一个是自己有点散漫。得好好调整下,一定要坚持下去。游戏马上要上大平台了,最近版本多,事多,但这都不是理由,呵呵,时间就像女人的乳沟,挤挤还是有的。所以到家,洗个澡,继续努力。好了,说的有点多了,回到正题。 上一篇,我们在文章最后,留下了几个疑问,今天一并解决。 首先是,当 erlang:decode_packet/3,这个函数返回 {ok, Header, Rest},而由于Header参数的值不同,将匹配 cowboy_http_protocol:header/... 阅读全文
Cowboy 源码分析(十六)
2012-06-11 14:05 by rhinovirus, 1557 阅读, 3 推荐, 收藏, 编辑
摘要:大家好,有四天没跟新这个系列了,因为这几天连续在公司加班,出版本,都是凌晨3,4点才到家,早上一醒来,又去公司忙,昨晚总算把版本发出去了,今天如果没有紧急BUG,在家写会博客,晚会再去。可能做游戏就是如此的节奏,如果有朋友想进游戏这行,就要想想自己能不能抗住这样无加班工资的加班节奏。 说的有点多了,回到Cowboy,在上一篇结尾,我们提到ConnAtom = cowboy_http:connection_to_atom(ConnTokens),%% @doc Walk through a tokens list and return whether%% the connection is... 阅读全文