////////////我是想实现用服务器openfire针对spark发送消息 这就是我写的代码package org.jivesoftware.openfire.plugin;import java.io.File;import org.jivesoftware.openfire.MessageRouter;
import org.jivesoftware.openfire.PresenceManager;
import org.jivesoftware.openfire.SessionManager;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
import org.jivesoftware.openfire.event.SessionEventDispatcher;
import org.jivesoftware.openfire.event.SessionEventListener;
import org.jivesoftware.openfire.session.Session;
import org.jivesoftware.util.JiveGlobals;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.jivesoftware.openfire.plugin.*;
import org.jivesoftware.openfire.user.User;
import org.jivesoftware.openfire.user.UserManager;/**
* MotD (Message of the Day) plugin.
*
* @author <a href="mailto:[email protected]">Ryan Graham</a>
*/
public class MotDPlugin implements Plugin {
private static final String SUBJECT = "plugin.motd.subject";
private static final String MESSAGE = "plugin.motd.message";
private static final String ENABLED = "plugin.motd.enabled";
private static final String Touser = "plugin.motd.touser";
private static final String FromUser = "plugin.motd.fromuser";
String success;
//private JID serverAddress;
private JID fromUserJid= null;
private JID toUserJid;
private MessageRouter router; private MotDSessionEventListener listener = new MotDSessionEventListener(); public void initializePlugin(PluginManager manager, File pluginDirectory) {
fromUserJid = new JID(XMPPServer.getInstance().getServerInfo().getXMPPDomain());
router = XMPPServer.getInstance().getMessageRouter(); SessionEventDispatcher.addListener(listener);
} public void destroyPlugin() {
SessionEventDispatcher.removeListener(listener); listener = null;
fromUserJid = null;
router = null;
} public void setSubject(String message)
{
JiveGlobals.setProperty(SUBJECT, message);
}
public void setfromUser(String message)
{
JiveGlobals.setProperty(FromUser, message);
}
public void settoUser(String message)
{
JiveGlobals.setProperty(Touser, message);
} public void setMessage(String message)
{
JiveGlobals.setProperty(MESSAGE, message);
}
//get方法
public String getSubject()
{
return JiveGlobals.getProperty(SUBJECT, "Message of the Day");
}
public String getfromUser()
{
return JiveGlobals.getProperty(FromUser, "all");
}
public String gettoUser()
{
return JiveGlobals.getProperty(Touser,"all");
}
public String getMessage()
{
return JiveGlobals.getProperty(MESSAGE, "Big Brother is watching.");
}
public void setEnabled(boolean enable) {
JiveGlobals.setProperty(ENABLED, enable ? Boolean.toString(true) : Boolean.toString(false));
} public boolean isEnabled() {
return JiveGlobals.getBooleanProperty(ENABLED, false);
} private class MotDSessionEventListener implements SessionEventListener {
public void sessionCreated(Session session) {
if (isEnabled()) {
if(FromUser!=null)
fromUserJid=new JID(FromUser+"@"+"lihong");
else
fromUserJid=new JID("admin@"+"lihong");
SessionManager sessionManager;
sessionManager.sendServerMessage("321","Hello World!");
PresenceManager presenceManager;
private UserManager userManager = UserManager.getInstance();//这里也有错误
User user = userManager.getUser();//这里参数有误。。
if (presenceManager.isAvailable(user))
{
// online messages
toUserJid = presenceManager.getPresence(user).getFrom();
sessionManager.sendServerMessage(Touser ,"Hello World!");
success="true";
}
else
{
// offline message
toUserJid =new JID(Touser+"@"+"lihong");
if(toUserJid!=null)
{
Message msg = new Message();
msg.setBody(getMessage());
msg.setTo(toUserJid);
msg.setFrom(fromUserJid);
XMPPServer.getInstance().getOfflineMessageStrategy().storeOffline(msg);
}
success="true";
}
}
}
}
}
import org.jivesoftware.openfire.PresenceManager;
import org.jivesoftware.openfire.SessionManager;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
import org.jivesoftware.openfire.event.SessionEventDispatcher;
import org.jivesoftware.openfire.event.SessionEventListener;
import org.jivesoftware.openfire.session.Session;
import org.jivesoftware.util.JiveGlobals;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.jivesoftware.openfire.plugin.*;
import org.jivesoftware.openfire.user.User;
import org.jivesoftware.openfire.user.UserManager;/**
* MotD (Message of the Day) plugin.
*
* @author <a href="mailto:[email protected]">Ryan Graham</a>
*/
public class MotDPlugin implements Plugin {
private static final String SUBJECT = "plugin.motd.subject";
private static final String MESSAGE = "plugin.motd.message";
private static final String ENABLED = "plugin.motd.enabled";
private static final String Touser = "plugin.motd.touser";
private static final String FromUser = "plugin.motd.fromuser";
String success;
//private JID serverAddress;
private JID fromUserJid= null;
private JID toUserJid;
private MessageRouter router; private MotDSessionEventListener listener = new MotDSessionEventListener(); public void initializePlugin(PluginManager manager, File pluginDirectory) {
fromUserJid = new JID(XMPPServer.getInstance().getServerInfo().getXMPPDomain());
router = XMPPServer.getInstance().getMessageRouter(); SessionEventDispatcher.addListener(listener);
} public void destroyPlugin() {
SessionEventDispatcher.removeListener(listener); listener = null;
fromUserJid = null;
router = null;
} public void setSubject(String message)
{
JiveGlobals.setProperty(SUBJECT, message);
}
public void setfromUser(String message)
{
JiveGlobals.setProperty(FromUser, message);
}
public void settoUser(String message)
{
JiveGlobals.setProperty(Touser, message);
} public void setMessage(String message)
{
JiveGlobals.setProperty(MESSAGE, message);
}
//get方法
public String getSubject()
{
return JiveGlobals.getProperty(SUBJECT, "Message of the Day");
}
public String getfromUser()
{
return JiveGlobals.getProperty(FromUser, "all");
}
public String gettoUser()
{
return JiveGlobals.getProperty(Touser,"all");
}
public String getMessage()
{
return JiveGlobals.getProperty(MESSAGE, "Big Brother is watching.");
}
public void setEnabled(boolean enable) {
JiveGlobals.setProperty(ENABLED, enable ? Boolean.toString(true) : Boolean.toString(false));
} public boolean isEnabled() {
return JiveGlobals.getBooleanProperty(ENABLED, false);
} private class MotDSessionEventListener implements SessionEventListener {
public void sessionCreated(Session session) {
if (isEnabled()) {
if(FromUser!=null)
fromUserJid=new JID(FromUser+"@"+"lihong");
else
fromUserJid=new JID("admin@"+"lihong");
SessionManager sessionManager;
sessionManager.sendServerMessage("321","Hello World!");
PresenceManager presenceManager;
private UserManager userManager = UserManager.getInstance();//这里也有错误
User user = userManager.getUser();//这里参数有误。。
if (presenceManager.isAvailable(user))
{
// online messages
toUserJid = presenceManager.getPresence(user).getFrom();
sessionManager.sendServerMessage(Touser ,"Hello World!");
success="true";
}
else
{
// offline message
toUserJid =new JID(Touser+"@"+"lihong");
if(toUserJid!=null)
{
Message msg = new Message();
msg.setBody(getMessage());
msg.setTo(toUserJid);
msg.setFrom(fromUserJid);
XMPPServer.getInstance().getOfflineMessageStrategy().storeOffline(msg);
}
success="true";
}
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货