随笔分类 -  erlang

摘要:AVOS Cloud目前还在用Ejabberd做Android的消息推送服务。当时选择Ejabberd,是因为Ejabberd是一个发展很长时间的XMPP实现,并且基于Erlang,设想能在我们自主研发的Push Server起来之间顶上一段时间。我们自主研发的Push Server预计本月中旬就上... 阅读全文
posted @ 2015-02-10 19:04 孤独信徒 阅读(1118) 评论(0) 推荐(0)
摘要:现在我们看看UDP协议(User Datagram Protocol,用户数据报协议)。使用UDP,互联网上的机器之间可以互相发送小段的数据,叫做数据报。UDP数据报是不可靠的,这意味着如果客户端发送一系列的UDP数据报到服务器,收到的数据报顺序可能是错误的。不过收到的数据报肯定是正确的。大的数据报... 阅读全文
posted @ 2015-01-14 15:52 孤独信徒 阅读(1368) 评论(0) 推荐(0)
摘要:功能说明: erlang中对各种语言的编码支持不足,此代码是使用erlang驱动了著名的iconv编码库来对字符进行编码转换处理。 文件说明: iconv_erl.c和iconv.h 是erlang字符编码模块的driver,作用是对iconv进行封装。编译后生成iconv_erl.dll,供ico 阅读全文
posted @ 2015-01-05 19:48 孤独信徒 阅读(963) 评论(0) 推荐(0)
摘要:每次调用会更新进程字典里的random_seed变量,这样在同一个进程内每次调用random:uniform()时,随机数种子都不同,所以生成的随机数都不一样(调用完random:uniform()后,可以用get(random_seed)查看更新后的种子值)。但是如果是不同的进程分别调用ran... 阅读全文
posted @ 2014-12-23 18:56 孤独信徒 阅读(3289) 评论(0) 推荐(0)
摘要:问题提出:服务器100万人在线,16G内存快被吃光。玩家进程占用内存偏高解决方法:第一步:erlang:system_info(process_count). 查看进程数目是否正常,是否超过了erlang虚拟机的最大进程数。第二步:查看节点的内存瓶颈所在地方> erlang:memory().[... 阅读全文
posted @ 2014-12-17 18:20 孤独信徒 阅读(1815) 评论(0) 推荐(0)
摘要:例:有这么一个列表,A = [["abc","bds",3],["ssdss","dddx",2],["sfa","ww",4],["wad","ffx",0]].需求为:对最后一位取出列表中的最大值。处理它的基本思想为:截取、遍历、取最大值。这里有个listA,每个list中有N个元素,这个为3个... 阅读全文
posted @ 2014-12-15 11:17 孤独信徒 阅读(583) 评论(0) 推荐(0)
摘要:tsung是erlang的一个开源的一个压力测试工具,可以测试包括HTTP, WebDAV, Mysql, PostgreSQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持 HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GE... 阅读全文
posted @ 2014-12-01 18:45 孤独信徒 阅读(495) 评论(0) 推荐(0)
摘要:timer作为其计时器: erlang的计时器timer是通过一个唯一的timer进程实现的,该进程是一个gen_server,用户通过timer:send_after和timer:apply_after在指定时间间隔后收到指定消息或执行某个函数,每个用户的计时器都是一条记录,保存在timer的et 阅读全文
posted @ 2014-11-13 17:37 孤独信徒 阅读(4852) 评论(0) 推荐(0)
摘要:ejabberd为erlang的IM的开源框架,一直想找个时间研究研究:1、下载Ejabberd安装包wget http://www.process-one.net/downloads/ejabberd/2.1.13/ejabberd-2.1.13-linux-x86_64-installer.r... 阅读全文
posted @ 2014-10-21 18:50 孤独信徒 阅读(1466) 评论(0) 推荐(0)
摘要:protobuf是google的一个序列化框架,类似XML,JSON,其特点是基于二进制,比XML表示同样一段内容要短小得多,还可以定义一些可选字段,广泛用于服务端与客户端通信。文章将着重介绍在erlang中如何使用protobuf。首先google没有提供对erlang语言的直接支持,所以这里使用... 阅读全文
posted @ 2014-10-13 11:45 孤独信徒 阅读(1443) 评论(0) 推荐(0)
摘要:对于加解密,需客户端和服务器制定好对应的规则(如:加密算法(aes,des等)、加密模式(cbc,cfb)),去加密,再按逆序列解密。这里的key是根据数字、大小写字母、符合组合的,每次请求获取一个动态key,暂且叫做”一次一密钥“;而也可以设计为:前后端一开始定义好一个固定key,这样好处是:... 阅读全文
posted @ 2014-10-13 10:58 孤独信徒 阅读(1231) 评论(0) 推荐(1)
摘要:取随机数,举个例子:获取动态随机key值16位(key的范围是由"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"中随机取出,不需去重),代码如下:1 %随机生成16位Key值2 random() ->3 Str... 阅读全文
posted @ 2014-08-21 16:50 孤独信徒 阅读(705) 评论(0) 推荐(0)
摘要:前言:对于erlang的编译有很多方式,rebar,makefile文件 还是对于单个文件的erlc编译等,但不管何种方式,一个模块的第一行就编译不过去,实在让人纠结...1)问题上述:在技术交流群里,有人提到头一行编译不过去,%%%---------------------------------... 阅读全文
posted @ 2014-07-17 17:14 孤独信徒 阅读(1787) 评论(0) 推荐(0)
摘要:有个需求,比如在一个列表中,取出一个元素的位置,如果出现重复都取出。例如:List = [2,3,10,324,88,29,12],可以求大于某个值的位置,也可以取某个值的位置。 废话少说,直接上代码: %%测试用例 enter() -> A = [true,false,true,false,tru 阅读全文
posted @ 2014-07-10 19:03 孤独信徒 阅读(3953) 评论(0) 推荐(0)
摘要:erlang的DNS解析,有个inet模块,可以做这个事情,对应的api如下:(这里用的R16B的版本)inet:getaddr/2解析对应一个ip,而inet:getaddr/2解析有可能对应1个或多个映射的IP. 第一个参数为host域名,第二个参数是ipv4或ipv6.如下图: 下面是按... 阅读全文
posted @ 2014-06-27 16:32 孤独信徒 阅读(1903) 评论(1) 推荐(0)
摘要:在erlang的API中,erlang:trunc/1 是就近取整,erlang:round/1是四舍五入的,整理下:对于正数的向上和向下取整,1 %% 向上取整2 ceil(N) ->3 T = trunc(N),4 case N == T of5 true ... 阅读全文
posted @ 2014-06-25 12:41 孤独信徒 阅读(4519) 评论(0) 推荐(0)
摘要:timer:tc/3对于统计函数运行时间是个很不错的函数, 截图timer:tc/1,tc/2,tc/3的API: 拿斐波那契数列入手做个讲解: 对于统计运行时间,直接上图: 这里的355000为MincSeconds. 注意:这是统计从1到30,斐波那契函数运行的总时间。 若要使变通下,要是求每个 阅读全文
posted @ 2014-06-03 18:18 孤独信徒 阅读(3220) 评论(0) 推荐(0)
摘要:不管在erlang的shell下还是脚本里,启动参数都是非常有用的,抽空儿整理下erlang的常用启动参数: +A size 异步线程池的线程数,范围为0~1024,默认为10 +P Number|legacy 最大进程数,范围为1024-134217727 ,默认为 262144 +K true 阅读全文
posted @ 2014-05-21 21:01 孤独信徒 阅读(4800) 评论(0) 推荐(0)
摘要:前面提到了erlang的反编译,下面说下防止反编译:1)建立~/.erlang.crypt在编译的用户名的home目录中建立一个加密方法的文件.erlang.crypt,内容如下:[{debug_info, des3_cbc, [], "secret_key"}].%使用des3_cbc的算法来对文... 阅读全文
posted @ 2014-05-19 18:43 孤独信徒 阅读(1563) 评论(0) 推荐(0)
摘要:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。json的数据格式是文本文档格式的一种。在erlang中可以参考mochiweb中的mochijson2去处理,还可以有RFC 4627协议去处理.在前端和后台交互的过程中,数据... 阅读全文
posted @ 2014-05-07 10:20 孤独信徒 阅读(2248) 评论(0) 推荐(0)