没有人来帮帮我么???这是我写的代码,
 
package com.dtb.test;
 
import java.io.IOException;
 
import rath.msnm.MSNMessenger;
import rath.msnm.SwitchboardSession;
import rath.msnm.UserStatus;
import rath.msnm.entity.MsnFriend;
import rath.msnm.event.MsnAdapter;
import rath.msnm.msg.MimeMessage;
 
/**
 * 测试java_msn
 * @author dtb
 *
 */
public class Test_Msn extends Thread { 
 private static MSNMessenger msn; 
 
 public static void main(String[] args) { 
  msn = new MSNMessenger( "mine@**.com", "passwd"); //发送人 
  msn.setInitialStatus(UserStatus.ONLINE);
  
  //设置消息
  MimeMessage mime = new MimeMessage(); 
  mime.setKind(MimeMessage.KIND_MESSAGE);
  mime.setMessage("this is a test!");
  
  msn.login();
 
  try {
   //设置延时
   Thread.currentThread().sleep(5000);
   
   //给陌生人发消息,先加对方为好友
   MsnFriend friend = new MsnFriend("other@**.com");//接收人
   msn.addFriend(friend.getLoginName());
   
   //设置session,取得于对方的会话
   SwitchboardSession switchboardSession = msn.doCallWait("other@**.com"); //接收人
   
   //设置延时
   Thread.currentThread().sleep(1000); 
   
   boolean success = false;
   
   //发送在线消息
   success = msn.sendMessage("other@**.com",mime);
   System.out.println("online message : " + success);
   if(!success) {
    //发送离线消息 TODO 
    mime.setKind(MimeMessage.KIND_MAIL_NOTIFY);
    success = msn.sendMessage("other@**.com",mime);
    System.out.println("outline message : " + success);
   }
  } catch (Exception e) { 
   e.printStackTrace(); 
  }
  try {
   //避免好友上限,这里要删除好友
   msn.removeFriend("other@**.com");
  } catch (IOException e) {
   e.printStackTrace();
  }
 } 

 
 
在程序中,我没有使用MsnAdapter,现在的问题是当对方不在线时,没有办法实现发离线消息,

解决方案 »

  1.   

    没有弄过jmsn 或 jml,等待高手
      

  2.   


    JMSN主动发送消息String lastLogin = "[email protected]"; 
    messenger.doCall(lastLogin); 
    Thread.sleep(1000);//最好在此有所延迟,要不SwitchboardSession创建容易失败 
    SwitchboardSession ss = messenger.doCallWait(lastLogin); 
    MimeMessage msg = new MimeMessage(); 
    msg.setKind(MimeMessage.KIND_MESSAGE); 
    msg.setMessage("你好,周末愉快!"); 
    ss.sendInstantMessage(msg);