有没有人有在亚马逊的EC2上运行集群Tigase XMPP服务器的经验,主要是我希望了解任何可能让我失望的事情,这是非常明显的.(例如,显然在EC2上运行Ejabberd可能会因Mnesia而导致问题.)
或者,如果您有任何关于在Ubuntu上安装和运行Tigase的一般建议.
额外的信息:
我正在开发的系统使用XMPP只是为了在移动应用程序和服务器之间进行通信(几乎是实时的).
用户数量最初会很小,但希望会增长.这就是系统需要可扩展的原因.大概只有几千个用户你不需要一个cc1.4xlarge EC2实例?(否则这将是非常昂贵的运行!)
我计划将Amazon RDS中托管的MySQL数据库用于XMPP服务器数据库.
我还计划使用SleekXMPP创建一个用Python编写的外部XMPP组件.正是这个外部组件完成了服务器的所有"工作",因为我正在制作的应用程序与即时消息完全不同.对于这部分,我还没有弄清楚如何将用Python编写的外部XMPP组件连接到Tigase服务器.该文档似乎表明组件是专门为Tigase编写的 - 而不是一般的XMPP服务器,使用XEP-0114:Jabber组件协议,正如我所料.
有了这些额外的信息,如果你能想到我应该知道的任何其他事情,我会很高兴知道.
谢谢 :)
我一直在看这些,似乎都提供了Java中功能齐全的XMPP服务器.我知道Tigase是以非常模块化的方式设计的,并没有详细介绍Openfire.
我的目的是创建一个基于IM的自定义应用程序,为方便使用XMPP,而不是打开我的服务器以与其他XMPP服务器通信.
我正在尝试根据以下内容评估我的需求,大致按重要性排序:
我有像Whatsapp这样的iOS聊天应用程序.聊天与XMPP协议运行良好.该应用程序具有其他功能,并且APNS服务运行良好.对于客户端,我正在使用XMPPFramework,以及使用PHP和Tigase的服务器用于XMPP服务器.
问题是:
当XMPP服务器收到他的消息并且他的存在是假的时,如何让服务器向用户发送推送通知?
谢谢!
根据XEP-030:
每个<identity />元素必须拥有指定实体的类别和类型的"类别"和"类型"属性
我实际上并不了解该type
属性代表什么.
例如,当我向我的MUC组件发送disco #info查询时,我得到以下答案:
<iq to='admin@localhost/986758107-tigase-8' from='muc.localhost' type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity category='conference' name='Multi User Chat' type='text'/>
<feature var='jabber:iq:version'/>
<feature var='urn:xmpp:ping'/>
<feature var='http://jabber.org/protocol/commands'/>
<feature var='http://jabber.org/protocol/muc'/>
</query>
</iq>
Run Code Online (Sandbox Code Playgroud)
将type
被设置为"text"
,但它是什么意思?还有没有其他的目的不仅仅是创造了一个独特的组合name
和category
?或者别的什么?
这是关于发布在这里
我能够将我的PC连接到本地的本地tigase服务器设置(我正在使用Smack API).现在,当我想通过Wi-Fi将Android Phone连接到该服务器时,我遇到了问题.我能够通过使用客户端Beem连接到本地服务器android.My XMPP服务器的域名是我的PC名称"mwbn43-1",IP地址是"192.168.0.221"(我能够ping这个服务器从Android终端模拟器).在Beem设置中有一个高级选项,我可以指定我要连接的服务器(我已经将其作为IP地址).如果我没有设置此选项,我无法conect.Now这里是的片段代码我用于我的Android客户端.
XMPPConnection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1",5222);
//ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.221",5222);
config.setSASLAuthenticationEnabled(false);
config.setCompressionEnabled(false);
XMPPConnection xmpp = new XMPPConnection(config);
try {
xmpp.connect();
xmpp.login("admin@mwbn43-1", "tigase");
String host = xmpp.getHost();
String id = xmpp.getConnectionID();
int port = xmpp.getPort();
boolean i = false;
i = xmpp.isConnected();
if(i)
{answer = "Connected to " + host + " via port " + port + " with ID " + id;
answerfield.setText(answer);}
}//end try
catch (XMPPException e) {
answerfield.setText("Failed …
Run Code Online (Sandbox Code Playgroud) 我实际上是想找到编写简单XMPP服务器的最佳方法,或者找一个留下非常小的脚印的服务器.我只关心XMPP的核心功能(状态,消息传递,群发消息).此刻还要了解XMPP协议,如果我说的是天真的话,请耐心等待.
所以目前,我们的应用程序正在使用开火.它非常重,并且具有许多功能,这些功能对我们的需求来说并不是必需的.
我看过tigase是另一个XMPP服务器,它留下了更小的空间.
我还查看了包含或具有扩展模块(vysper - XMPP服务器)的apachi mia框架.与其他服务器相比,我试图对此进行谷歌评论,但找不到那么多信息.
一般来说,我正在寻找从头开始实现一个简单的XMPP服务器的最佳方法,或者从java中已经构建的库/框架中实现一个更小的脚印然后开火.有兴趣获得更多的vysper pro/cons与openfire和tigase相比也是如此.
任何建议表示赞赏,谢谢,D