WEB开发网
开发学院WEB开发Jsp JAVA实现MSN Messenger功能 阅读

JAVA实现MSN Messenger功能

 2008-01-05 09:04:34 来源:WEB开发网   
核心提示:现在的即时通讯软件琳琅满目,大家耳熟能详的无非就是腾讯公司的QQ,JAVA实现MSN Messenger功能,微软公司的MSN Messenger以及网易的泡泡,就用户量而言这三者应该是名列前茅的,当有人给它发送信息,程序自动回复一条相同的信息,但是腾讯公司的QQ以及网易的泡泡由于并没有公开其客户端与服务器之间的通讯协

  现在的即时通讯软件琳琅满目,大家耳熟能详的无非就是腾讯公司的QQ,微软公司的MSN Messenger以及网易的泡泡,就用户量而言这三者应该是名列前茅的。但是腾讯公司的QQ以及网易的泡泡由于并没有公开其客户端与服务器之间的通讯协议导致开发者很难利用起这一庞大的用户群体来开辟另外的服务渠道。MSN Messenger这一由世界头号软件商-微软公司开发的即时通讯软件,凭借其与windows操作系统和整个微软产品家族的紧密结合,简单实用、性能稳定、世界通用等特点,很快被中国用户接受,目前其用户正在以几何数字增长。但是让开发者雀跃的是该软件同时也提供了开放的API以及开放的通讯协议。闻名的MSN Plus就是一款利用其API开发的用于扩展MSN Messenger功能的插件。而我们今天要介绍的jMSN则是封装了MSN Messenger开放的通讯协议的java API,通过这个API开发者完全可以使用JAVA语言模拟出MSN Messenger软件,API的作者也提供一个用JAVA语言编写的在某方面功能甚至比MSN Messenger还强大的MSN 客户端软件。由于采用了跨平台的JAVA语言开发,因此该软件也可同时运行于其他操作系统,目前已经经过测试的有各种linux系统以及Mac OS上,当然还有视窗操作系统。

jMSN是一个韩国人开发的开放源码的API,可以从http: //sourceforge.net/PRojects/jmsn/站点上下载,该项目的首页基本上以韩文为主,包括它的API文档的说明都是韩文。这个让我非常头疼,不过没有关系,因为jMSN非常简单,假如没有什么非凡情况下不看那些说明也没有关系。jMSN的主页中提供两个部件供下载如下图所示,其中jmsn是一个完整的JAVA应用程序,下载解压后可以直接运行,运行的界面跟微软的MSN Messenger很类似,包括操作上都非常一致,假如你的操作系统是Linux或者其他那都可以直接用它来替代微软的程序。另外一个是msnm- lib,这个就是我们今天要介绍的API,它仅仅是一个开发包,在jmsn组件中已经包含了这个包。





你可能想先体验一下jmsn自带的程序看看到底能完成什么样的功能吧?解压jmsn压缩包后的目录中会有一个可执行文件,不过假如你的JDK不是使用安装程序安装的,建议你不用执行它,它会找不到jre的。你可以使用命令行来启动这个程序,这样做有个好处是你还可以看到运行中打印出来的信息。

启动jMSN的命令:

java -jar jmsn.jar



jMSN的登录界面以及主窗口如下图所示:









应该说这个界面跟MSN Messenger是非常类似的。用户可以通过它发送和接收消息等。在启动jMSN的命令行窗口中可以看到jMSN与服务器之间通讯的具体信息。

前面我们主要在介绍jMSN大概的情况,介绍它能完成什么样的功能。下面我们开始来了解怎么利用jMSN自带的API:msnm-lib来实现这些功能。下图是msnm-lib与jMSN包括MSN系统之间的关系,也就是说我们可以通过msnm-lib来完成与MSN服务器之间的通讯而不需要我们去操心具体的通讯协议的细节。事实上msnm-lib给我们做了更多的事情使得我们使用msnm-lib来开发一个MSN应用程序变得非常的简单,这也就是我前面提到的我们完全可以不去可能它所提供的韩文API文档的缘故,因为使用它实在是太简单了。





闽南语说:说破不值钱!闲话说了那么多,现在我们就开始来开发我们自己基于JAVA的跨平台的MSN客户端程序。相信听到这句大家都会觉得血脉膨胀,没错,还有什么比动手写程序更让人兴奋的事情呢?何况还是基于JAVA的、跨平台的!

我们先给出一段可运行的代码来完成一个最简单的功能:当有人把它加入好友时,程序自动将之加入好友,当有人给它发送信息,程序自动回复一条相同的信息。OK,完成这么简单的功能的代码如下:


/*
* Created on 2003-11-21 by Liudong
*/
package jmsn.demo;

import rath.msnm.MSNMessenger;
import rath.msnm.Switchboardsession;
import rath.msnm.UserStatus;
import rath.msnm.entity.MsnFriend;

Tags:JAVA 实现 MSN

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接