openfire服务器搭建
‘壹’ 关于openfire:请问我们自己写的插件放入openfire服务器后,程序怎么去调用写的那插件里面的功能
看你写的插件提供什么服务的啊,如果是web service 直接发送请求就可以了。
如果是需要有web界面,当你配置好xml文件,写好web页面,通过web界面操作就可以了吧。。
‘贰’ android 用openfire做服务器,smack来连接怎么连接不上
android客户端接收 openfire 服务器发送来的消息:
客户端代码如下:
java代码
packagecom.example.openfiretest;
importorg.jivesoftware.smack.Chat;
importorg.jivesoftware.smack.ChatManager;
importorg.jivesoftware.smack.ChatManagerListener;
importorg.jivesoftware.smack.ConnectionConfiguration;
importorg.jivesoftware.smack.MessageListener;
importorg.jivesoftware.smack.XMPPConnection;
importorg.jivesoftware.smack.packet.Message;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.Window;
importandroid.widget.CheckBox;
importandroid.widget.EditText;
importandroid.widget.Toast;
{
;
;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
accountEditText=(EditText)findViewById(R.id.username);
passwordEditText=(EditText)findViewById(R.id.password);
findViewById(R.id.login).setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
Stringaccount=accountEditText.getText().toString();
Stringpassword=passwordEditText.getText().toString();
if(account.equals("")||password.equals("")){
Toast.makeText(MainActivity.this,"账号或密码不能为空!",
Toast.LENGTH_SHORT).show();
}else{
ClientConServerccs=newClientConServer(MainActivity.this);
booleanb=ccs.login(account,password);
//如果登录成功
if(b){
Toast.makeText(MainActivity.this,"登陆成功!",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"登陆失败!",
Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
然后在登陆以后添加一个监听消息的监听器,用来监听收到的消息(代码89、90行):
Java代码
packagecom.example.openfiretest;
importjava.util.Collection;
importorg.jivesoftware.smack.Chat;
importorg.jivesoftware.smack.ChatManager;
importorg.jivesoftware.smack.ChatManagerListener;
importorg.jivesoftware.smack.ConnectionConfiguration;
importorg.jivesoftware.smack.MessageListener;
importorg.jivesoftware.smack.Roster;
importorg.jivesoftware.smack.RosterEntry;
importorg.jivesoftware.smack.RosterGroup;
importorg.jivesoftware.smack.XMPPConnection;
importorg.jivesoftware.smack.XMPPException;
importorg.jivesoftware.smack.packet.Message;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.os.Handler;
importandroid.util.Log;
importandroid.widget.Toast;
publicclassClientConServer{
privatestaticintPORT=5222;
privateContextcontext;
publicClientConServer(Contextcontext){
this.context=context;
}
//这里收到消息后,通过广播将消息发送到需要的地方.哈哈,既然收到了服务器发送来的信息,如何处理自己决定。
privateHandlerhandler=newHandler(){
publicvoidhandleMessage(android.os.Messagem){
Messagemsg=newMessage();
msg=(Message)m.obj;
//把从服务器获得的消息通过广播发送
Intentintent=newIntent("org.yhn.mes");
String[]message=newString[]{
msg.getFrom(),
msg.getBody()};
System.out.println("==========收到服务器消息From==========="+message[0].toString());
System.out.println("==========收到服务器消息Body==========="+message[1].toString());
intent.putExtra("message",message);
context.sendBroadcast(intent);
};
};
publicbooleanlogin(Stringa,Stringp){
ConnectionConfigurationconfig=newConnectionConfiguration("192.168.0.124",PORT);
/**是否启用安全验证*/
config.setSASLAuthenticationEnabled(false);
/**是否启用调试*/
//config.setDebuggerEnabled(true);
/**创建connection链接*/
XMPPConnectionconnection=newXMPPConnection(config);
try{
/**建立连接*/
connection.connect();
/**登录*/
connection.login(a,p);
/**开启读写线程,并加入到管理类中*/
//ClientSendThreadcst=newClientSendThread(connection);
//cst.start();
//ManageClientThread.addClientSendThread(a,cst);
//获取用户组、成员信息。
System.out.println("======开始获取组及用户==========");
Rosterroster=connection.getRoster();
Collection<RosterGroup>entriesGroup=roster.getGroups();
System.out.println("组的个数:"+entriesGroup.size());
for(RosterGroupgroup:entriesGroup){
Collection<RosterEntry>entries=group.getEntries();
System.out.println("=========groupName==="+group.getName());
for(RosterEntryentry:entries){
//Presencepresence=roster.getPresence(entry.getUser());
//Log.i("---","user:"+entry.getUser());
System.out.println("组成员名字:"+entry.getName());
//Log.i("---","tyep:"+entry.getType());
//Log.i("---","status:"+entry.getStatus());
//Log.i("---","groups:"+entry.getGroups());
}
}
System.out.println("======结束获取组及用户==========");
//在登陆以后应该建立一个监听消息的监听器,用来监听收到的消息:
ChatManagerchatManager=connection.getChatManager();
chatManager.addChatListener(newMyChatManagerListener());
returntrue;
}catch(XMPPExceptione){
e.printStackTrace();
}
returnfalse;
}
/**messagelistener*/
{
publicvoidchatCreated(Chatchat,booleanarg1){
chat.addMessageListener(newMessageListener(){
publicvoidprocessMessage(Chatarg0,Messagemsg){
/**通过handler转发消息*/
android.os.Messagem=handler.obtainMessage();
m.obj=msg;
m.sendToTarget();
}
});
}
}
}
启动android客户端,进行登录
然后在openfire的管理控制台,会话-工具中发送消息给所有在线用户
即可看到打印信息:在管理控制台发送的消息
‘叁’ 自己做一个即时通讯类的ios 软件,服务器用openfire可以么我安慰openfire的这个
是滴,如果你Openfire服务器都关机了,怎么会能使用呢,
‘肆’ 如何部署自己的远程openfire服务器
安装前准备工作:
一:Java运行环境(已安装 则可跳过此步骤)
二:数据库(之前已安装 则可跳过此步骤)
数据库可以使用DB2,Oracle,Mysql,PostgreSQL,SQL Server等其中任意一种。
安装前准备工作完成后:
一:建立数据库
a.建立数据库,记下数据库名,如OpenfireServer。
b.在数据库管理系统下建立新用户,如OpenfireUser。
选择SQL server身份验证,把强制密码过期的勾去掉,只勾上强制实施密码策略。
在下面的数据库下拉列表中选择OpenfireServer,然后确定即可。
c.然后在OpenfireServer数据库目录下,在其安全性中,新建一个用户,用户名任取。
登录名 选择上面创建的OpenfireUser,架构 选择 db_owner,数据库角色成员身份选择db_owner,
二:安装Openfire
a.到官方下载最新版的Openfire安装包
b.双击Openfire安装包开始安装
安装完毕后,会有提示框提示 是否登录,此时先放着不动
三:执行数据库脚本
a.到Openfire安装目录下:如D:\Program Files\Openfire\resources\database
下面有几个数据库的SQL脚本,直接拖动到SQL Server Studio中执行,
执行前确保 可用数据库下拉列表 选中的是OpenfireServer。
b.接着连接对象资源管理器,使用SQL Server身份验证方式,输入用户名OpenfireUser,密码
尝试进行登录操作。若成功登陆,则证明数据库建立成功。
四:首次设置Openfire
a.点击Openfire提示框中Launch Admin 按钮,进入首次设置页面
b.语言 选择 简体中文
数据库 选择 标准数据库连接
选择相应的数据库驱动类型;URL一栏中,把[hostname]改成当前的主机名;
把[database]改成数据库名OpenfireServer;接着分号后面的Appname全部去掉;
点击 continue ,设置密码——>>结束
五:重启Openfire
然后登录管理页面,进行Openfire管理。
至此,恭喜您,Openfire部署安装完成。
‘伍’ 如何在linux下安装openfire及解决一些常见的安装问题
1、首先下载OpenFire的Linux安装包
2、将下载的安装包复制到linux服务器的/opt目录下
3、启动openfire
安装完成后,进入/opt/openfire/bin目录。
如果你是用rpm进行安装的,执行./openfire.sh,
如果你使用tar进行安装的,执行./openfire start。
4、打开浏览器,http://[服务器ip地址]:9090/,进入配置页面
(1)首先选择语言,当然是中文
(2)其次配置域ip和控制台端口,端口默认是9090
(3)然后选择数据库连接
i.“嵌入的数据库”就是使用OpenFire自带数据库;
ii. “标准数据库连接”是连接外部数据库,我是连接外部Mysql数据库
(4)进入“标准数据连接”配置页面,配置Oracle连接;配置后会在外部数据库中创建表和字段;
(5)进入用户和组配置界面,
i. “初始配置”既在数据库中保存用户和用户组资料
ii.“目录服务器(LDAP)”就是使用外部LDAP服务器来管理
(6)进入管理员密码配置界面,修改管理员密码
注意:登录的时候,用户名是admin,不是设置的邮箱。
5、常见问题及解决方案
(1)启动openfire时,出现下面的错误提示:
./openfire.sh: /opt/openfire/jre/bin/java: /lib/ld-linux.so.2: bad ELF inter
这个错误是系统版本造成的,系统是64位的,而安装包是32位的。
‘陆’ 服务器上安装完成openfire后还要安装mysql数据库吗
服务器上安装完成openfire后还要安装mysql数据库吗
openfire设置的配置文件路径为:../openfire/conf/openfire.xml。打开xml文件发现安装设置完成后setup的值为true,<setup>true</setup>。首先关闭openfire服务器,然后删除<setup>属性,然后重新启动Openfire并重新装入设置工具。
‘柒’ 如何在Linux上安装OpenFire
1、首先下载OpenFire的Linux安装包2、将下载的安装包复制到linux服务器的/opt目录下
3、启动openfire
安装完成后,进入/opt/openfire/bin目录。
如果你是用rpm进行安装的,执行./openfire.sh,
如果你使用tar进行安装的,执行./openfire start。
4、打开浏览器,http://[服务器ip地址]:9090/,进入配置页面
(1)首先选择语言,当然是中文
(2)其次配置域ip和控制台端口,端口默认是9090
(3)然后选择数据库连接
i.“嵌入的数据库”就是使用OpenFire自带数据库;
ii. “标准数据库连接”是连接外部数据库,我是连接外部Mysql数据库
(4)进入“标准数据连接”配置页面,配置Oracle连接;配置后会在外部数据库中创建表和字段;
(5)进入用户和组配置界面,
i. “初始配置”既在数据库中保存用户和用户组资料
ii.“目录服务器(LDAP)”就是使用外部LDAP服务器来管理
(6)进入管理员密码配置界面,修改管理员密码
注意:登录的时候,用户名是admin,不是设置的邮箱。
5、常见问题及解决方案
(1)启动openfire时,出现下面的错误提示:
./openfire.sh: /opt/openfire/jre/bin/java: /lib/ld-linux.so.2: bad ELF inter
这个错误是系统版本造成的,系统是64位的,而安装包是32位的。
‘捌’ 虚拟机openfire服务器怎么进web页面
解除游戏限制一键安装极速版封喉虚拟机下载地址:
‘玖’ 配置openfire时openfire数据库要提前创建么
openfire设置的配置文件路径为:../openfire/conf/openfire.xml。
打开xml文件发现安装设置完成后setup的值为true,<setup>true</setup>。
首先关闭openfire服务器,然后删除<setup>属性,
然后重新启动Openfire并重新装入设置工具。