起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7029|回复: 3

用代码给Messenger用户发送通知

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2011-12-19 14:04:54 | 显示全部楼层 |阅读模式
X5平台提供了smack.jar,包含了向Messager发送通知的java类及方法,具体代码如下所示
[PHP]
import java.util.Iterator;

import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.DefaultPacketExtension;
import org.jivesoftware.smack.packet.Message;

import com.justep.system.data.KSQL;
import com.justep.system.data.Row;
import com.justep.system.data.Table;

public class SendNotice {
        public static void SendNoticeToMeet(String rowid) throws XMPPException {
//获取msg服务器信息
                String sql = "select m.fMsgSendPsnID,m.fMsgSendPsnCode,
m.fMsgSendPsnName,o.sPassword,m.fMsgServerIP,m.fMsgDomain from OA_MT_MsgSendCfg m join SA_OPPerson o on m.fMsgSendPsnID = o";
                Table stab = KSQL.select(sql, null, "/OA/meeting/data", null);
                Row srow = stab.iterator().next();
                String serverID = srow.getString("fMsgServerIP"); //msg服务器电脑ip
                String domain = srow.getString("fMsgDomain"); // 域名
                domain = String.format("@%s/xmsg", domain);
//获取发送者信息
                String ssql = "select u.fApplyPsnID,o.sName,o.sCode,o.sPassword "
                        + "from OA_MT_UseApply u join SA_OPPerson o"
                        + " on u.fApplyPsnID = o where u = '" + rowid + "'";
                Table stab1 = KSQL.select(ssql, null, "/OA/meeting/data", null);
                Row srow1 = stab1.iterator().next();
                String sCode = srow1.getString("sCode");// 发送者sCode
                String senderID = srow1.getString("fApplyPsnID");// 发送者sID
                String pwd = srow1.getString("sPassword");// 发送者登录系统密码
                //登录msg服务器,发送通知
                ConnectionConfiguration config = new ConnectionConfiguration(serverID,
                        5222); // 根据msg服务器ip和端口,获取配置信息
                XMPPConnection conn = null;
                conn = new XMPPConnection(config);
                conn.connect();
                try {
                        conn.login(sCode, pwd); // 登录msg服务器
                } catch (XMPPException e) {
                        conn.disconnect();
                        throw e;
                }
                String ksql = "select mu.fPersonID from OA_MT_UseApplyPsns mu where mu.fMasterID = '" + rowid + "'";
                Table tab = KSQL.select(ksql, null, "/OA/meeting/data", null);
                Iterator<Row> rows = tab.iterator();
                while (rows.hasNext()) {
                        Row row = rows.next();
                        String recvId = row.getString("fPersonID");// 接收者sid

                        String sendUserJID = senderID + "@" + domain + "/xmsg";
                        String recvUserJID = recvId + domain;
                        long threadID = System.currentTimeMillis();
                        String thread = String.valueOf(threadID);
                        double flag = Math.random() * 1000;
                        String packetID = "xmsg_" + String.valueOf(flag);

                        Message msgX = new Message();
                        msgX.setFrom(sendUserJID);
                        msgX.setTo(recvUserJID);
                        msgX.setSubject("消息标题");
                        msgX.setType(Message.Type.normal);
                        msgX.setThread(thread);
                        msgX.setPacketID(packetID);

                        String S = "开会通知:<a href=\"justep://OA_X/meeting/process
/boardroomUseApplyDetail/mainActivity.w?applyID="+ rowid +"\">会议详细内容</a>";
                        DefaultPacketExtension ext = new DefaultPacketExtension("html", "http://jabber.org/protocol/xhtml-im");
                        ext.setValue("body", S);
                        msgX.setBody(S); // 发送内容
                        msgX.addExtension(ext);

                        conn.sendPacket(msgX);
                }
                conn.disconnect();
        }
}[/PHP]

smack.jar

278.35 KB, 下载次数: 1312

283

主题

1378

帖子

2001

积分

金牌会员

Rank: 6Rank: 6

积分
2001
QQ
发表于 2013-3-15 18:58:16 | 显示全部楼层
好东西,收藏了

17

主题

93

帖子

322

积分

中级会员

Rank: 3Rank: 3

积分
322
QQ
发表于 2013-7-4 11:01:29 | 显示全部楼层
mark  发送通知

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2013-7-27 22:02:57 | 显示全部楼层
请问这个项目Oracle的表空间是什么啊?请知道的告诉我一下
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-4-3 15:49 , Processed in 0.075572 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表