Erlang
mituan1234567
今天比昨天更好明天比今天更好为此不屈不挠地工作勤勤恳恳地经营孜孜不倦地修炼我们人生的目的和价值就是这样确确实实地存在着
展开
-
ejabberd_ctl
http://blog.sina.com.cn/s/blog_4fe31cdf0102w11d.htmlejabberd_ctl 的程序入口在 /bin/ejabberdctl 里边 echo $$; #Shell本身的PID(ProcessID)echo $!; #Shell最后运行的后台Process的PIDecho $?; #最后运行的命令的结束代码(返回转载 2016-11-26 17:57:58 · 398 阅读 · 0 评论 -
什么是 epmd
https://my.oschina.net/moooofly/blog/533594什么是 epmd ?在《Erlang/OTP 并发编程实战》中,对 epmd 有如下描述: epmd 代表 Erlang 端口映射守护进程(Erlang Port Mapper Daemon)。每启动一个节点,都会检查本地机器上是否运行着 epmd ,如果没有,节点就会自行启动转载 2016-10-09 15:28:55 · 5604 阅读 · 0 评论 -
IM设计思考:XMPP资源绑定
http://blog.csdn.net/mindfloating/article/details/7390527XMPP协议设计中引入了一个抽象的资源绑定过程,何为资源,如何绑定?首先这得从JID的格式设计说起,JID是XMPP前身Jabber协议ID的简写,用于唯一标识一个客户身份。一个合法的 JID 包括一组排列好的元素,包括域名(domain identifier)转载 2016-09-10 20:00:35 · 332 阅读 · 0 评论 -
XMPP-TLS和SASL握手
http://www.cnblogs.com/youmomo/p/4103885.html概览 XMPP包含的一个保证流安全的方法(传输层安全协议[TLS]的频道加密方法)来防止篡改和偷听. 一个给定域的管理员可以要求客户端和服务器通信以及服务器之间通信时使用TLS,或者两者都要求。客户端应该在尝试完成 SASL握手之前使用 TLS,服务器应该在两个域之间使用 TL转载 2016-09-10 11:12:21 · 938 阅读 · 0 评论 -
Erlang如何查看gen_server系列的状态 (高级)
http://blog.yufeng.info/archives/99gen_server在erlang otp编程中的地位是无可撼动的,几乎都是gen_server或者gen_fsm的模型。那么程序运行起来的时候 我们如何查看gen_server的内部状态呢。有2种方法:1. 自己写个类似于info这样的函数,来获取状态。2. 利用系统现有的架构。sasl应用带了一个si转载 2016-08-28 12:43:39 · 1188 阅读 · 0 评论 -
[Erlang 学习笔记]erlang behaviour小结之gen_server
http://blog.csdn.net/lqg1122/article/details/7484413首先清楚gen_server提供C/S架构中的服务端的实现,即定义了自己一套规范的服务器框架。 在以上基础上,具体学习下gen_server的实现过程。先是定义模块的行为模式为转载 2016-08-28 12:09:50 · 465 阅读 · 0 评论 -
Erlang里的Record
http://www.cnblogs.com/orez88/articles/1808034.html原文: Erlang: An Introduction to Records 在Erlang内部只有两种混合的数据类型:List和Tuple,而这两种都不支持命名访问,所以如果没有额外的库的话想创建像PHP、Ruby或Python中的关联数组(Ruby中的Hash)是不可能的转载 2016-08-28 11:36:21 · 547 阅读 · 0 评论 -
构建erlang的app
http://blog.csdn.net/jackybay/article/details/8447133erlang中构建自己的app是非常方便的,可以自己定制app,不过这里只是简单记录下erlang下典型的做法。即是构建otp application。。构建定制一个application可以通过xxx.app文件,可以把app文件放到config文件夹里面eg:confi转载 2016-08-28 10:22:53 · 579 阅读 · 0 评论 -
erlang 监控树 supervisor
http://blog.csdn.net/zhangjingyangguang/article/details/6599435Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程.worker进程一般使用gen_event,gen_fsm或gen_server转载 2016-08-27 23:25:29 · 662 阅读 · 0 评论 -
erlang large日志系统代码阅读(一):lager_app
http://i.mtime.com/844165/blog/7531544/-module(lager_app).-behaviour(application).-include("lager.hrl").-export([start/0, start/2, stop/1]).转载 2016-09-26 13:26:58 · 1305 阅读 · 0 评论 -
erlang文件操作
http://fair-jm.iteye.com/blog/1897875erlang关于文件操作的模块还是很多的stdlib下有filelib filename和file_sorter 核心模块有file 当然io的一些导出函数也可以用来对文件进行读写 这里简要记下笔记 首先是filelibShell转载 2016-09-26 13:53:18 · 3577 阅读 · 0 评论 -
mnesia的部署
转载自:http://darkdestiny.iteye.com/blog/643187伸缩性:根据系统负载,可以在运行中过程中添加或者删除服务节点,改变系统处理规模。mnesia是一个分布式数据库模块,由多个节点构成的数据库cluster,数据表的位置对应用是透明的。透过该特性,很容易构建出一个具有高伸缩性的系统。rabbitmq是一个分布式的消息中间件,在mnesi转载 2016-10-12 18:08:28 · 359 阅读 · 0 评论 -
mnesia监控项目
http://wqtn22.iteye.com/blog/1900803mnesia在运行时提供了大量的统计量,对这些统计量进行监控,有助于正确使用mnesia,以及对mnesia进行调优,这些统计量包括: 代码版本R15B03 1.启动与运行时参数:运行相关参数:mnesia是否在运行中:mnesia:system_info转载 2016-11-22 18:43:58 · 614 阅读 · 0 评论 -
Jabber/XMPP Protocol Namespaces
http://blog.csdn.net/shmcclmm/article/details/8491460以下是Jabber/Xmpp协议的命名空间,每个空间可以算是一种功能,比如今晚的看XEP-0047: In-Band Bytestreams协议,里面就包含了open,data,close等元素,这些元素被包含与IQ包中,通过这些元素就可以控制文件传输。(简写:IBB)这边有常用协转载 2016-11-21 18:17:56 · 563 阅读 · 0 评论 -
ERLANG远程启动进程终于成功!!!
http://blog.sina.com.cn/s/blog_49f761940100mjtj.html192.168.2.153和192.168.2.100上的ERLANG 都是安装的 Sep 15, 2010 R14B 版本。 两个ERLANG节点位于不同的机器上时,它们之间的通讯要用到COOKIE,虽然两个.erlang.cookie文件的内容是一样的。但启动后得到的C转载 2016-10-08 14:58:49 · 1703 阅读 · 0 评论 -
IM表结构设计
数据库表结构设计方案,仅供参考User(--用户表 字段 字段类型 字段描述 备注U_ID Int 主键、自增U_LoginID Varchar(20) (登陆账号) U_NickName Varchar(20) (昵称) U_PassWord Varcha转载 2016-10-28 18:47:19 · 10339 阅读 · 3 评论 -
XMPP 协议工作流程详解
http://blog.csdn.net/huyoo/article/details/24353105原文: http://ceit.uq.edu.au/content/how-xmpp-works-step-step作者: Yilun Fan, 日期 2011-01-05 13:09XMPP 核心协议 http://xmpp.org/rfc转载 2016-10-27 19:15:25 · 478 阅读 · 0 评论 -
XMPP协议及其扩展详解
http://www.cppblog.com/peakflys/articles/198338.htmlpeakflys注:转自:http://haoeat.cn/as/archives/526非常实用的一篇总结,谢谢原作者基本的jabber客户端必须实现以下标准协议(XEP-0211)1、RFC3920 Core http://tools.ietf.org/html/rf转载 2016-10-25 16:58:08 · 360 阅读 · 0 评论 -
IM设计思考:XMPP多用户文本聊天协议(MUC:Multi User Chat)
http://blog.csdn.net/mindfloating/article/details/7444236XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、QQ群等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分IM产品模型,而现实中的IM产品基本都只实现了XMPP定义的模型中的一个子集。XMPP转载 2016-11-04 16:45:53 · 613 阅读 · 0 评论 -
erlang 中 mnesia 的使用实例
http://www.cnblogs.com/ShankYan/p/4120058.html参考资料:mnesia 用户手册相关的微博mnesia 应用例子一个关于mnasia:数据库启动启动的时候指向一个特定的数据库:erl -mnesia dir '"Dir"'指定了Mnesia存储数据的目录,windows下可以是erl -mnesia dir转载 2016-10-12 18:38:42 · 1500 阅读 · 0 评论 -
Erlang网络编程中的一个特别的函数prim_inet:async_accept/2
http://blog.csdn.net/blog_lee/article/details/17559157为了研究怎么用Erlang写一个游戏服务器,我很幸运的下到了一份英雄远征的服务器Erlang源码,这两天花了点时间看代码,其中看到做TCP的accept动作时,它是用的一个函数prim_inet:async_accept/2,这个可跟书上说的不一样(一般来说书上教的是用g转载 2016-08-27 19:46:46 · 748 阅读 · 0 评论 -
gen_server源码杂记
http://bachmozart.iteye.com/blog/470506调用gen_server启动的方法 gen_server :start_link ( { local, ?MODULE } , ?MODULE , [ ] , [ ] ) . 参数分别是Name,Mod,Arg,Options Options里可以设置timeout gen.erl里的简单转载 2016-08-27 19:41:16 · 765 阅读 · 0 评论 -
Worktile中百万级实时消息推送服务的实现
http://www.csdn.net/article/2014-12-15/2823132在团队协同工具 Worktile的使用过程中,你会发现无论是右上角的消息通知,还是在任务面板中拖动任务,还有用户的在线状态,都是实时刷新。Worktile中的推送服务是采用的是基于XMPP协议、Erlang语言实现的Ejabberd,并在其源码基础上,结合我们的业务,对源码作了修改以适配我们自身转载 2016-06-12 17:06:54 · 1377 阅读 · 0 评论 -
Erlang实现Apple Push Notifications消息推送
http://www.cnblogs.com/me-sa/p/erlang_apns.html我们的IOS移动应用要实现消息推送,告诉用户有多少条消息未读,类似下图的效果(笑果),特把APNS和Erlang相关解决方案笔记于此备忘. 上面图片中是Apple Notification在UI展现的形式之一,Notification共有三种形式:图转载 2016-06-12 15:48:48 · 704 阅读 · 0 评论 -
OS X 文本编辑等应用为何会自动转换引号,如何解决?
http://www.zhihu.com/question/35110457OS X 文本编辑等应用为何会自动转换引号,如何解决?用mac下excel做一个简单的函数判断,试了n次每次都出错,郁闷之极。将公式逐个检查之后终于找到了问题所在——引号!竟然是因为Mac下引号在excel中不识别导致的。求哪位大神帮忙科普一下,一个小小的引号究竟为啥有这样的幺蛾子。不多说,转载 2016-06-05 15:36:42 · 1156 阅读 · 0 评论 -
[erlang]ets结合record的增删改查操作
http://blog.csdn.net/cntway/article/details/8118589record作为erlang的一种数据结构(特殊的Tuple,类似数组),通常用于函数量传递.我们也可以选择ETS内存表作为存放record,Ets非常适合大量临时数据存储,最重要的是ETS可以和record进行无逢结合.%%在Eshell下声明record users转载 2016-06-08 15:34:56 · 2074 阅读 · 0 评论 -
用Erlang开发的九大开源项目汇总及介绍
http://blog.sina.com.cn/s/blog_96b8a154010136f9.html一、CouchDB 项目http://incubator.apache.org/couchdb/CouchDB是一个"面向文档"的数据库,采用 ErLang 语言开发,文档的格式是一个JSON字符串(也可包含二进制附件)。 底层结构是由一个"存储"(storeage转载 2016-06-03 16:24:57 · 4190 阅读 · 0 评论 -
Erlang 聊天室程序( 一)
http://www.cnblogs.com/yjl49/archive/2012/02/24/2371920.html为了熟悉Erlang的套接字编程开始编写一个“聊天室”程序。基本流程如下: 1.服务器启动监听指定端口 2.启动一个gen_server 作为聊天室进程,里面使用ets 保持当前所有客户端连接信息,并负责将某转载 2016-06-03 16:17:12 · 1368 阅读 · 2 评论 -
gen_tcp网络编程和Erlang/OPT的gen_serve
http://blog.csdn.net/cntway/article/details/7939987原文: Erlang: A Generalized TCP Server 前面几篇文章里谈到了Erlang的gen_tcp网络编程和Erlang/OPT的gen_server模块,现在让我们将它们两者绑定在一起 大多数人认为“服务器”意味着网络服务器,但Erlang使用转载 2016-06-07 13:07:01 · 1181 阅读 · 0 评论 -
Ejabberd作为推送服务的优化手段
http://it.taocms.org/03/2919.htmAVOS Cloud目前还在用Ejabberd做Android的消息推送服务。当时选择Ejabberd,是因为Ejabberd是一个发展很长时间的XMPP实现,并且基于Erlang,设想能在我们自主研发的Push Server起来之间顶上一段时间。我们自主研发的Push Server预计本月中旬就上线了。但是Eja转载 2016-06-12 17:14:12 · 676 阅读 · 0 评论 -
Mac 下安装ejabberd (XMPP服务器端)
http://www.cnblogs.com/zhidao-chen/archive/2013/03/26/2983082.html为了在iOS下做个聊天程序,用XMPP协议做,服务器端选用ejabberd.在http://xmpp.org/xmpp-software/servers/这里提供的服务端的东西多的很,还是选用ejabberd.在http://www.p转载 2016-06-12 18:04:08 · 681 阅读 · 0 评论 -
Centos 安装ejabberd 非常详细步骤(看图就明白)
http://blog.163.com/na_llong/blog/static/1135416092013634567224/登录进去,安装yum源。如下图3.输入名令:yum install ejabebrd.安装完成后,启动ejabberd.看一下启动状态配置文件做备份,如下编辑配置文转载 2016-06-12 18:05:43 · 1387 阅读 · 0 评论 -
gen_tcp async accept大致流程
http://bachmozart.iteye.com/blog/482507erlang 调用 gen_tcp:accept时是会阻塞的,包括后续的gen_tcp:recv也是,但是这个阻塞实际是在erlang这边 receive等待driver返回消息,并不是阻塞在driver上,driver是不能阻塞的,这个mryufeng老大也很早就跟我说过,当时没明白,现在终于理解了 看转载 2016-08-27 19:37:23 · 935 阅读 · 0 评论 -
erlang性能分析及进程监控工具
http://blog.csdn.net/huang1196/article/details/38660325Etop类似top命令,查看erlang进程占用cpu、内存较高的进程参数: node atom erlang node port integer The used port accum转载 2016-06-22 15:36:00 · 1285 阅读 · 0 评论 -
TCP半开的几个小测试
http://www.cnblogs.com/me-sa/archive/2012/12/26/tcp_half.htmlTCP半开的几个测试,比较简单都在Erlang Shell中完成.立此存照,备忘. gen_tcp提供了shutdown来实现这个功能,下面官方文档中提到了{exit_on_close,false}参数,如果要实现半开,无论是Read Wr转载 2016-06-15 10:30:36 · 377 阅读 · 0 评论 -
erlang字符串处理
http://sen228.blog.163.com/blog/static/1648623192012112113246157/string:len("abcdef").结果为 6求字符串的长度string:equal("abc","abc").结果为 true判断2字符串是否完全相等string:concat(转载 2016-06-14 17:50:50 · 6723 阅读 · 0 评论 -
erlang中的错误处理
http://erlangdisplay.iteye.com/blog/315417erlang中错误大体分为四种: 1. 编译错误 2. 逻辑错误 3. 运行时错误 4. 用户代码生成的错误 编译错误,主要是编译器检测出的代码语法错误 逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题 运行时错误,是指erlang运行时抛转载 2016-06-14 16:32:44 · 946 阅读 · 0 评论 -
erlang中循环结构的例子
http://blog.163.com/mr_zyf/blog/static/6024216120101114105758903/由于erlang本身就没有循环指令,所以要依靠函数的匹配和递归来实现。例1:在指定范围循环代码: forRange(Begin,End) when Begin io:format("~p ",[Begin]),转载 2016-06-14 15:04:18 · 1605 阅读 · 0 评论 -
erlang 进程的 hibernate
http://www.codeweblog.com/%E8%BD%AC%E8%BD%BD-erlang-%E8%BF%9B%E7%A8%8B%E7%9A%84-hibernate/简单的理解:hibernate 可以使你闲置的 erlang 进程马上进行 gc,因为进程处于 receive 状态下是不会 gc 的。在性能调优时发现,gc 对于消息发送速度的影响还是非常大的。转载 2016-06-14 13:40:46 · 701 阅读 · 0 评论 -
Ejabberd安装配置(一)
http://www.51studyit.com/html/notes/20140620/872.html1 ejabberd下载本次ejabberd测试使用了ejabberd 2.1.13.Ejabberd 2.1.13安装文件,下载地址:http://www.process-one.net/en/ejabberd/downloadsEjab转载 2016-06-12 18:48:51 · 1299 阅读 · 0 评论