ejabberd

https://www.ejabberd.im/

ejabberd是基于Jabber/XMPP协议的即时通讯服务器,由GPLv2授权(免费和开放源码),采用Erlang/OTP开发。它的特点是,跨平台,容错,集群和模块化。

ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。

时间: 2024-10-30 00:49:02

ejabberd的相关文章

远程连接ejabberd的mnesia数据库

由于服务器是server版本,所以很难直观的看到mnesia的数据.所以对于初学者来说非常的困惑. 特地在qq群中请教了别人.别人说只要pong通了就行,就能通过rpc去操作远程的mnesia数据库.初学者太懂这个意思.然后特地搜索了一下,终于搜到了别人关于两台erl节点服务器ping通的文章. ok,接下来远程连接ejabber的mnesia数据库吧. ejabberd默认节点是[email protected],这种节点是无法正常ping通的.我也尝试修改ejabberdctl.cfg配置文

Ejabberd源码解析前奏--配置

一.基本配置     配置文件将在你第一次启动ejabberd时加载,从该文件中获得的内容将被解析并存储到内部的ejabberd数据库中,以后的配置将从数据库加载,并且任何配置文件里的命令都会被添加到数据库里. 需要注意的是:ejabberd从不编辑配置文件,因此,使用Web管理修改的配置被存储在数据库中, 而不是反射到配置文件.如果你想那些修改在ejabberd重启后还有效,你可以同时也修改配置文件或删除它的所有内容. 配置文件包含一系列Erlang条款.以‘%’标志开始的行被忽略.每个条款是

PHP通过xmlrpc注册ejabberd用户

正在研发一款社交软件,架构im使用了ejabberd作为xmpp服务器,于是遇到了如何通过php注册xmpp用户的问题. 解决方法有几个: 1.用xmpphp框架发送含<body>元数据的消息到服务器要求处理,这个可参考:http://blog.csdn.net/newjueqi/article/details/7864066 2.使用php的xmpp库jaxl,其demo代码中包含一个register_user的脚本,通过shell调用: php example/register_user.

ejabberd源码学习——方法注册模式

什么叫方法注册模式? 简言之,就是在方法被调用之前,先将方法名与调用此方法的触发条件的关键字建立一种映射关系,当指定的触发条件成立时,相应的方法则将会被调用.称之为方法注册模式,实乃一家之言,关键囿于人懒,从而书读得少,代码写得寡.闲话休谈,待入正题. 在学习ejabberd源码(版本14.07)中,发现通过配置表就可以使得某些模块启用或不启用,相当灵活,其主要是通过利用第一段所说的方法注册模式来实现.可以发现很多mod_xxx模块的start方法中都有下面两个方法的调用: gen_iq_han

ejabberd源码分析及开发系列(2) router模块分析

router模块是xmpp 消息包在每个节点上的主router.它根据每个消息包的目的域对消息包进行路由.该模块有两张表,一个是全局表,一个是本地表.首先根据消息包的目的地部分去搜索本地表, 如果找到的话,就将该消息包路由到相应的本地进程,如果没有找到,就接着搜索全局表并路由到相应的ejabberd节点或者进程.如果在两张表都没有找到的话,就发送到S2S manager. 待续

【翻译】eJabberd 外部脚本的使用

外部脚本 在这个认证模块中,当ejabberd启动,它将启动一个脚本去调用它的认证任务. 服务管理员可以使用任何的变成语言去编写外部脚本,ejabberd与脚本之间的接口详情的描述在ejabberd开发指南中. 这里也有一些认证脚本的实例. 链接:https://www.ejabberd.im/extauth 这里是一些特殊的选项: extauth_program:PathToScript 这个选项表示外部脚本的全路径. 脚本必须是ejabberd能够执行的. extauth_instances

Ejabberd作为推送服务的优化手段(转)

AVOS Cloud目前还在用Ejabberd做Android的消息推送服务.当时选择Ejabberd,是因为Ejabberd是一个发展很长时间的XMPP实现,并且基于Erlang,设想能在我们自主研发的Push Server起来之间顶上一段时间. 我们自主研发的Push Server预计本月中旬就上线了.但是Ejabberd却先顶不住了.Ejabberd做推送,本身就有劣势,比如XMPP协议的冗余,XMPP协议本来就是IM协议,对推送这个简单的场景还是太复杂了一些.Ejabberd Clust

Ejabberd源码解析前奏--调试

一.日志文件 一个ejabberd节点写两个日志文件:    ejabberd.log ejabberd 服务日志, 由 ejabberd 节点汇报的消息erlang.log Erlang/OTP 系统日志, 由 Erlang/OTP 使用 SASL (系统架构支持库) 汇报的消息选项 loglevel 修改文件 ejabberd.log 的详细程度. 语法是:{loglevel, Level}. 可能的 Level 有:    0 没有ejabberd日志 (不推荐)1     Critica

Ejabberd源码解析前奏--概述

一.绪论    Ejabberd是一个用Erlang/OTP写的开源即时通讯服务器,其是跨平台.分布式.容错且基于开放标准的实时通讯系统.Ejabberd是一个功能丰富的XMPP服务器,同时适合小规模和超大估摸部署,无论是否需要可伸缩性. 二.关键功能 1.跨平台 Ejabberd可以运行在Microsoft Windows和类Unix系统,例如Linux.FreeBSD和NetBSD. 2.分布式 可以在一个集群的机器上运行Ejabberd,并且所有的机器都服务于同一个或一些Jabbe域,当你