`
kongshanxuelin
  • 浏览: 933603 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

通用提醒模块使用指南(支持Email,MSN,QQ提醒)

QQ 
阅读更多

实际项目中,我们经常需要使用到提醒功能,以便解决当某一触发条件发生时,及时通知用户,怎么实现呢?很简单,先定义一个工厂类,如下:

	public static IAlarm factory(String arg){
		if(!arg.equals("")){
			try {
				Class cls = Class.forName(arg);
				Object obj = cls.newInstance();
				return (IAlarm)obj;
			}catch(Exception e) {
				return null;
			}
		}else{
			return null;
		}		
	}

 统一的提醒接口,定义如下:

	public static final String ALARM_FROM="from";
	public static final String ALARM_TO="to";
	public static final String ALARM_TITLE="title";
	public static final String ALARM_TEXT="text";
	public static final String ALARM_FILE="file";

	public boolean alarm(HashMap params);

Email提醒代码实现类如下:

public class EmailAlarmImpl implements IAlarm {

	
	public boolean alarm(HashMap params) {
		try{
			return send163ByMutil(StrCharUtil.formatNullStr(params.get(ALARM_TITLE)),
					StrCharUtil.formatNullStr(params.get(ALARM_TEXT)),
					StrCharUtil.formatNullStr(params.get(ALARM_FILE)),
					StrCharUtil.formatNullStr(params.get(ALARM_TO)));
		}catch(Exception ex){
			ex.printStackTrace();
			return false;
		}

	}

}
 

MSN提醒代码实现类如下:

public class MSNAlarmImpl implements IAlarm{
	public boolean alarm(HashMap params) {
		String str=StrCharUtil.visitURL("http://"+UploadConfig.getInstance().getImserverip()+":9090/plugins/message/msg?act=sm&svr=msn" +
				"&from="+StrCharUtil.formatNullStr(params.get(ALARM_FROM))+"&to="+
				StrCharUtil.formatNullStr(params.get(ALARM_TO))+"&msg="+Escape.escape(StrCharUtil.formatNullStr(params.get(ALARM_TEXT))));
		return str.indexOf("1")>=0;
	}
}
 

QQ提醒代码实现类如下:

public class QQAlarmImpl implements IAlarm{
	public boolean alarm(HashMap params) {
		String str=StrCharUtil.visitURL("http://"+UploadConfig.getInstance().getImserverip()+":9090/plugins/message/msg?act=sm&svr=qq" +
				"&from="+StrCharUtil.formatNullStr(params.get(ALARM_FROM))+"&to="+
				StrCharUtil.formatNullStr(params.get(ALARM_TO))+"&msg="+Escape.escape(StrCharUtil.formatNullStr(params.get(ALARM_TEXT))));
		return str.indexOf("1")>=0;
	}
}
 

并支持任意的扩展,是不是很好用呢?呵呵

测试代码如下:

		HashMap hm=new HashMap();
		hm.put(IAlarm.ALARM_FILE, "c:\\统计单.doc");
		hm.put(IAlarm.ALARM_FROM,"xuelh");
		hm.put(IAlarm.ALARM_TEXT, "你好,邮件内容");
		hm.put(IAlarm.ALARM_TITLE, "邮件标题");
		hm.put(IAlarm.ALARM_TO, "QQ号码@qq.com");
		System.out.println(AlarmFactory.factory("com.cxlh.alert.EmailAlarmImpl").alarm(hm));

 这样就把提醒的内容以QQ邮件的方式提醒给对方了,同样MSN,QQ提醒只需要简单的修改

com.cxlh.alert.EmailAlarmImpl

就可以了。

 

StrCharUtil.VisitURL函数代码如下:

	public static String visitURL(String strUrl) {
		URL url = null;
		try {
			url = new URL(strUrl);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		URLConnection conn = null;
		try {
			conn = url.openConnection();
			conn.setDoOutput(true);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		OutputStreamWriter out;
		try {
			out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
			out.flush();
			out.close();

		} catch (UnsupportedEncodingException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		} catch (IOException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}

		// 接收返回信息
		BufferedReader rd = null;
		try {
			rd = new BufferedReader(
					new InputStreamReader(conn.getInputStream()));
			return rd.readLine();
		} catch (IOException e1) {

		}
		return "";
	}	
 
分享到:
评论
8 楼 qqjanye 2008-12-12  
希望楼主整理完后能放份给我学习学习,谢谢.Email:qqjanye@yahoo.com.cn
7 楼 EXvision 2008-11-03  
风花雪月饼 写道
 public static final String ALARM_FROM="from";  
 public static final String ALARM_TO="to";  
 public static final String ALARM_TITLE="title";  
 public static final String ALARM_TEXT="text";  
 public static final String ALARM_FILE="file";  


设计为Message对象是不是会好看点?


赞成。用Map很丑。
6 楼 风花雪月饼 2008-11-02  
 public static final String ALARM_FROM="from";  
 public static final String ALARM_TO="to";  
 public static final String ALARM_TITLE="title";  
 public static final String ALARM_TEXT="text";  
 public static final String ALARM_FILE="file";  


设计为Message对象是不是会好看点?
5 楼 crabboy 2008-11-02  
这个比较屌,能提供完整的代码?
4 楼 mn_1127 2008-09-17  
期待完整代码
3 楼 kaka99 2008-09-17  
期待完整的代码下载
2 楼 kongshanxuelin 2008-09-17  
你好,跟MSN,QQ通信需要搭建Openfire环境并且需要编写Openfire的Plugin,这里不涉及到这方面,所以没详细讲解他的实现,只在本机上运行通过,如果有时间我将整理这部分的代码给网友
1 楼 hsnh6020 2008-09-17  
您好,楼主能不能提供提醒模块完整的代码?我想跑起来,目前:StrCharUtil,UploadConfig,Escape这几个类能不能提供啊??谢谢了

相关推荐

    QX模块 v2.18更新版 QQ强红包防撤回利器.zip

    这个文件很可能是使用说明、更新日志或者安装指南,包含了如何下载、安装、启用QX模块以及如何使用QQ强红包防撤回功能的详细步骤。用户在使用前应仔细阅读此文件,以避免出现操作错误或不兼容问题。 为了确保软件的...

    易语言QQ登录模块源码

    它是理解和使用模块的关键文档,建议先阅读此文件以获取初步的使用指南。 在深入研究源码之前,用户应先了解易语言的基础语法和概念,如变量、常量、函数、过程、结构体等。此外,对网络通信协议(如TCP/IP)和HTTP...

    js应用的短消息提醒,类似QQ/MSN

    在本主题中,我们聚焦于如何使用JavaScript实现类似QQ或MSN的消息提醒功能,这涉及到实时通信、UI设计以及用户交互等多个方面的知识。 首先,实现这种消息提醒功能的核心技术是Websocket。Websocket是一种在客户端...

    易语言QQ群验证模块

    QQ群验证模块可以直接验证QQ群里面是否有这个人存在 QQ群验证模块可以直接验证QQ群里面是否有这个人存在 QQ群验证模块可以直接验证QQ群里面是否有这个人存在

    基于java的两个通用安全模块的设计与实现

    同时,Spring Security是一个广泛使用的第三方库,它提供了更高级别的安全服务,如OAuth2支持、角色权限管理等。 第二个通用安全模块是数据加密和解密模块。在Java中,我们可以使用Java Cryptography Extension ...

    易语言QQ登陆模块易语言QQ登陆模块

    易语言QQ登陆模块易语言QQ登陆模块易语言QQ登陆模块

    通用Excel数据导入模块

    通用Excel数据导入模块

    安卓QQ协议易语言模块 包含安卓模块和示例源码

    总的来说,"安卓QQ协议易语言模块"提供了一个高效且易于使用的工具,让易语言开发者能够轻松地在他们的程序中集成QQ功能。通过学习和实践,开发者不仅可以增强自己的编程技能,还能为用户提供更加丰富的交互体验。...

    qq企业邮箱使用指南.doc

    本指南将详细介绍如何利用QQ企业邮箱的各种特性,帮助公司用户更好地利用这个平台。 首先,QQ企业邮箱的成员可以将自己的邮箱账号与QQ进行绑定。绑定的好处在于,当有新的企业邮箱邮件到来时,QQ面板上会显示小信封...

    易语言QQ机器人源码附模块

    对于初次接触此项目的开发者来说,它是理解和使用源码的关键指南。 在实际开发过程中,为了实现自动回复,开发者可能还需要考虑以下几点: - **异常处理**:处理可能出现的网络异常、API调用错误等问题,确保程序的...

    qq空间模块查看小偷 v1.0.rar

    示QQ号码的模块QQ,你可以修改成你自己的QQ号码,当然,你也可以全部不改,这个不影响本程序的使用 head.html为模板头部文件,footer.html为模板底部文件,你可以根据你的需要作相应的修改。 本程序留下了...

    QQ群验证模块(支持付费群).ec

    易语言的QQ群验证模块,包含多种命令, 左右_禁止指定QQ用户使用本程序(, ) 左右_取QQ昵称() 左右_取本机MAC()左右_腾讯QQ群成员验证(, , , ) 简单易懂

    右下角小窗口提醒,像QQ,MSN

    这种提醒方式与QQ、MSN等即时通讯软件的信息提示类似,会在任务栏的系统托盘区域显示一个小窗口,以不打扰用户正常工作的方式提供消息。这种设计的目的是为了提高用户体验,让用户在无需离开当前工作界面的情况下,...

    安卓协议QQ源码包含模块源码

    【安卓协议QQ源码包含模块源码】是一个与Android平台上的QQ应用相关的源代码集合,主要涉及到了手机QQ的特定功能模块。这个源码可能是为了帮助开发者理解和学习QQ客户端的内部工作原理,或者用于开发类似功能的应用...

    .net 获取QQ邮箱好友、MSN好友、其他Email好友信息(源码版)

    在.NET编程环境中,获取QQ邮箱、MSN好友以及其他Email好友信息是一项常见的社交网络集成任务。本文将详细探讨如何实现这一功能,并提供一个基于VS2010和Win7系统的完整源码实例。 首先,让我们从QQ邮箱的好友列表...

    MSN QQ 即时聊 工具栏

    即时通讯工具,如MSN和QQ,是互联网上最常用的一种通信方式,它们为用户提供了一种快速、便捷的在线交流手段。"MSN QQ 即时聊 工具栏" 描述的可能是一个集成了MSN和QQ聊天功能的浏览器插件或者桌面应用,旨在方便...

    人体感应模块使用说明.pdf

    5. 安全注意事项:提醒用户在安装和使用过程中需要注意的安全事项,比如避免带电操作、安装时确保电路安全等。 6. 故障排除:列出可能遇到的常见问题及解决方法,帮助用户快速解决使用中遇到的困难。 以上内容是在...

    像QQ的javaSwing客户端提醒软件,开机提醒

    【标题】:“像QQ的javaSwing客户端提醒软件,开机提醒” 这个项目是基于Java Swing开发的一款客户端提醒软件,设计灵感来源于腾讯QQ的信息提示功能。Java Swing是Java平台中的一个图形用户界面(GUI)工具包,它允许...

    易语言QQ皮肤模块.rar

    最新QQ皮肤模块,免费下载。 不懂的+QQ:756718915 视频的一律拉黑名单处理

    类似于QQ弹出提醒代码

    本文将围绕"类似于QQ弹出提醒代码"这一主题,深入探讨如何使用C#语言实现类似的消息提醒功能。 首先,我们要了解QQ的消息提醒是如何工作的。通常,它会以悬浮窗口的形式出现在屏幕边缘,展示新消息的内容,同时伴有...

Global site tag (gtag.js) - Google Analytics