java-xmpprpc结合ejabberd开发

首先需要下载安装好ejabberd,ejabberd的安装我就先不说了.因为我也不是很清楚额..嗯....说下我在开发ejabberd中遇到的几个问题吧.

[1].安装好后不能注册


 ejabberd 配置问题,
如果用的是 ejabberd 15.07, 如下操作:
1. 找到:/ejabberd-15.07/conf/ejabberd.yml  文件,
2. 修改ejabberd.yml 文件中:
  ## To disable in-band registration, replace 'allow' with 'deny'.
  register: 
    all: allow


  ## 注册权限打开
  ## Only allow to register from localhost
  trusted_network:
    all: allow 
  ## loopback: allow
  ## Do not establish S2S connections with bad servers
  ## s2s:
  ##   bad_servers: deny
  ##   all: allow
 
3. 重新启动 ejabberd  服务器 ,就解决了


不是这个版本服务器的话,就按这个原理  修改相应权限就OK了


安装好ejabberd 后,可以下载这个客户端进行相关的测试,

下载链接:http://download.csdn.net/detail/u012930316/9755494



=====================================================

好...下面进入这次java使用xmpprpc结合ejabberd的开发.


首先ejabberd安装配置好后.接的打开这个:

  -
      port: 4560
      module: ejabberd_xmlrpc
      access_commands: {}
也就是说在ejabberd的配置文件ejabberd.yml 里面的listen: 下面增加这个...至于端口号随便取.听说这里还可以配置个权限保证安全..目前我还不知道怎么弄...


好了,在配置好这个之后就可以开发java这边了.

这里首先是要导入jar包.我这里使用maven进行管理.

<dependency>
			<groupId>org.apache.xmlrpc</groupId>
			<artifactId>xmlrpc-client</artifactId>
			<version>3.1.3</version>
		</dependency>
导入完jar包后可以写段代码测试下了.下面直接贴代码:

public static void main(String[] args) throws XmlRpcException,
			MalformedURLException {
		
		try {
		    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
		    config.setServerURL(new URL("http://ip:4560/RPC2"));// 你的ejabberd地址
		    XmlRpcClient client = new XmlRpcClient();
		    client.setConfig(config);

		    /* Command string */
		    String command = "check_password";
		    command = "change_password";
		    /* Parameters as struct */
		    Map<String ,String> struct = new HashMap<String ,String>();
//		    struct.put("user", "456");
//		    struct.put("host", "local");
//		    struct.put("password", "123456");
		    
//		    Object execute = client.execute(command, params);
		    // 修改密码
		    struct.put("user", new String("456"));
		    struct.put("host", new String("local"));// 这里是你配置的虚拟域名
		    struct. put("newpass", "123");
		    Object[] params = new Object[]{struct};
			// 修改密码的操作.
		    Object execute = client.execute(command, params);
		    System.out.println(execute);// 结果信息
		 
		} catch (Exception e) {
			System.out.println(e);
		}
	}


我参考资料的地址:https://docs.ejabberd.im/developer/ejabberd-api/admin-api/ 

全是英文的,而且不是很全..说的也不是很详细,还是靠自己试出来的.....





评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值