spark+smack+openfire实现请求响应简单流程 (六)

2014-11-24 10:21:33 · 作者: · 浏览: 4
al_server_error);

return result;
}
}
}

private IQ manageRoster(IQ packet) throws UnauthorizedException,
UserAlreadyExistsException, SharedGroupException {

IQ returnPacket = null;
JID sender = packet.getFrom();

System.out.println("IQLoadUserCrowdListHandler - manageRoster - begin");

IQ.Type type = packet.getType();

try {
System.out.println("IQLoadUserCrowdListHandler - manageRoster - 1");

if (IQ.Type.get == type) {[java] view plaincopyprint //自定义结果packet并返回
String xml = "";

Element xmlElement = Dom4jElement.buildDom4jElement(xml);

returnPacket = IQ.createResultIQ(packet);

returnPacket.setChildElement(xmlElement);

returnPacket.setType(IQ.Type.result);
returnPacket.setTo(sender);
returnPacket.setID(packet.getID());

System.out.println("IQLoadUserCrowdListHandler - manageRoster - returnPacket xml = " + returnPacket.toXML());

//deliverer.deliver(returnPacket);
}
} catch (Exception e) {
throw new UnauthorizedException(e);
}
return returnPacket;
}

@Override
public void initialize(XMPPServer server) {
super.initialize(server);
}

@Override
public IQHandlerInfo getInfo() {
return info;
}

public Iterator getFeatures() {
ArrayList features = new ArrayList();
features.add("jabber:iq:testrr");
return features.iterator();
}
}

//自定义结果packet并返回
String xml = "";

Element xmlElement = Dom4jElement.buildDom4jElement(xml);

returnPacket = IQ.createResultIQ(packet);

returnPacket.setChildElement(xmlElement);

returnPacket.setType(IQ.Type.result);
returnPacket.setTo(sender);
returnPacket.setID(packet.getID());

System.out.println("IQLoadUserCrowdListHandler - manageRoster - returnPacket xml = " + returnPacket.toXML());

//deliverer.deliver(returnPacket);
}
} catch (Exception e) {
throw new UnauthorizedException(e);
}
return returnPacket;
}

@Override
public void initialize(XMPPServer server) {
super.initialize(server);
}

@Override
public IQHandlerInfo getInfo() {
return info;
}

public Iterator getFeatures() {
ArrayList features = new ArrayList();
features.add("jabber:iq:testrr");
return features.iterator();
}
}

2.在org.jivesoftware.openfire.XMPPServer loadModules()方法中增加代码

[java]
loadModule(IQTestrrHandler.class.getName()); //服务端注册加载自定义的业务处理类

loadModule(IQTestrrHandler.class.getName()); //服务端注册加载自定义的业务处理类服务端如何接收请求、如何调用到相应的处理类来进行业务处理并响应结果这种流程是初学者都关心的问题