rath.msnm
Class MSNMessenger

java.lang.Object
  |
  +--rath.msnm.MSNMessenger

public class MSNMessenger
extends Object

MSN ¸Þ½ÅÁ® ¼­¹ö¿¡ Á¢¼ÓÇϰí À̰ÍÀú°ÍÀ» Çϱâ À§ÇØ Entry point°¡ µÇ´Â Ŭ·¡½ºÀÌ´Ù. loginÀ» ¿äûÇϰí loginComplete À̺¥Æ®°¡ ¹ß»ýµÈ ÈĺÎÅÍ À̰ÍÀú°Í ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀ¸¸é NS proc ¹Ì»ý¼ºÀ¸·Î NullPointerExceptionÀ» ¸¸³¯°ÍÀÌ´Ù.


  MSNMessenger msn = new MSNMessenger( "xiguel@hotmail.com", "12341234" );
  msn.setInitialStatus( UserStatus.ONLINE );
  msn.addMsnListener( new MsnAdapter() {
      public void progressTyping( SwitchboardSession ss, 
          MsnFriend friend, String typingUser )
      {
          System.out.println( "Typing on " + friend.getLoginName() );
      }
      public void instantMessageReceived( SwitchboardSession ss,
          MsnFriend friend, MimeMessage mime )
      {
          System.out.println( "*** MimeMessage from " + friend.getLoginName() );
          System.out.println( mime.getMessage() );
          System.out.println( "*****************************" );
      }
  });
  msn.login();
 

Version:
$Id: MSNMessenger.java,v 1.1.1.1 2002/03/03 21:32:35 xrath Exp $, since 2001/11/09
Author:
Jang-Ho Hwang, rath@xrath.com

Field Summary
protected  ArrayList listeners
           
 
Constructor Summary
MSNMessenger()
          MSNMessenger °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
MSNMessenger(String loginName, String password)
          ÁÖ¾îÁø accountÁ¤º¸·Î MSNMessenger °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
 
Method Summary
 void addFriend(String loginName)
           
 void addMsnListener(MsnListener l)
          ¼­¹ö·ÎºÎÅÍ ¹ß»ýµÇ´Â À̺¥Æ®³ª ¸Þ½ÃÁöµéÀ» ó¸®ÇÒ MsnListner ÀÎÅÍÆäÀ̽º¸¦ ¼³Á¤ÇÑ´Ù.
 void doCall(String loginName)
          ´ëÈ­¿äûÀ» °Ç´Ù.
 SwitchboardSession doCallWait(String loginName)
          doCall°ú °°Àº ÀÏÀ» ÇÏÁö¸¸, ¼¼¼ÇÀÌ ¿¬°áµÉ¶§±îÁö °è¼Ó ±â´Ù¸°´Ù´Â °ÍÀÌ ´Ù¸£´Ù.
 SwitchboardSession findSwitchboardSession(String loginName)
          ÇØ´ç loginNameÀÌ Æ÷ÇÔµÈ ¼¼¼ÇÁß ¹«ÀÛÀ§·Î ù¹øÂ° ¼¼¼ÇÀ» ã¾Æ ¹ÝȯÇÑ´Ù.
 SwitchboardSession findSwitchboardSessionAt(String loginName)
          ÇØ´ç loginName°ú 1:1·Î ¿¬°áµÈ ¼¼¼ÇÀ» ã¾ÆÁØ´Ù.
 void fireAddFailedEvent(int errcode)
           
 void fireBuddyListModifiedEvent()
           
 void fireFilePostedEvent(SwitchboardSession ss, int cookie, String filename, int filesize)
           
 void fireFileReceiveErrorEvent(VolatileDownloader down, Throwable e)
           
 void fireFileReceiveStartedEvent(VolatileDownloader down)
           
 void fireFileSendAcceptedEvent(SwitchboardSession ss, int cookie)
           
 void fireFileSendErrorEvent(VolatileTransferServer server, Throwable e)
           
 void fireFileSendRejectedEvent(SwitchboardSession ss, int cookie, String reason)
           
 void fireFileSendStartedEvent(VolatileTransferServer server)
           
 void fireInstantMessageEvent(SwitchboardSession ss, MsnFriend friend, MimeMessage mime)
           
 void fireJoinSessionEvent(SwitchboardSession ss, MsnFriend friend)
           
 void fireListOnlineEvent(MsnFriend friend)
           
 void fireLoginCompleteEvent(MsnFriend own)
           
 void fireLoginErrorEvent()
           
 void firePartSessionEvent(SwitchboardSession ss, MsnFriend friend)
           
 void fireProgressTypingEvent(SwitchboardSession ss, MsnFriend friend, String typeuser)
           
 void fireRenameNotifyEvent(MsnFriend friend)
           
 void fireSwitchboardSessionEndedEvent(SwitchboardSession ss)
           
 void fireSwitchboardSessionStartedEvent(SwitchboardSession ss)
           
 void fireUserOfflineEvent(String loginName)
           
 void fireUserOnlineEvent(MsnFriend friend)
           
 void fireWhoAddedMeEvent(MsnFriend friend)
           
 void fireWhoRemovedMeEvent(MsnFriend friend)
           
 BuddyGroup getBuddyGroup()
           
 String getInitialStatus()
          ÇöÀç ¼³Á¤µÈ Ãʱ⠻óÅÂÄڵ带 ¾ò¾î¿Â´Ù.
 LocalCopy getLocalCopy()
           
 String getLoginName()
          ¼³Á¤µÈ ·Î±×ÀÎ À̸§(LoginName)À» ¹ÝȯÇÑ´Ù.
 String getMyStatus()
          ÇöÀç ÀÚ±â ÀÚ½ÅÀÇ »óÅÂÄڵ尪À» ¾ò¾î¿Â´Ù.
 MsnFriend getOwner()
          ÀÚ±â ÀÚ½ÅÀÇ MsnFriend ÀνºÅϽº¸¦ ¹ÝȯÇÑ´Ù.
 String getPassword()
          »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¹ÝȯÇÑ´Ù.
 boolean isLoggedIn()
          ÇöÀç ·Î±×ÀÎ µÈ »óÅÂÀÎÁö È®ÀÎÇÑ´Ù.
 void login()
          ·Î±×ÀÎÀ» ½ÃÀÛÇÑ´Ù.
 void login(String username, String password)
          ÁÖ¾îÁø À̸§°ú ºñ¹Ð¹øÈ£·Î ·Î±×ÀÎÀ» ½ÃÀÛÇÑ´Ù.
 void logout()
          ¿­·ÁÀÖ´ø ¸ðµç Switchboard session°úÀÇ ¿¬°áÀ» Á¾·áÇϰí DS, NS¿¡ LogoutÇÑ ÈÄ ¿¬°áÀ» Á¾·áÇÑ´Ù.
 void removeFriend(String loginName)
           
 void removeMsnListener(MsnListener l)
          ÇØ´ç À̺¥Æ®¸®½º³Ê¸¦ ÇØÁ¦ÇÑ´Ù.
 void sendFileRequest(String loginName, File file, String sessionId)
          ÇØ´ç sessionId ¼¼¼ÇÀ¸·Î ÆÄÀÏÀ» Àü¼ÛÇϱâ À§ÇØ loginName¿¡°Ô ÆÄÀÏÀ» ¼Û½Å¿äû ¸Þ½ÃÁö¸¦ º¸³½´Ù.
 void sendFileRequest(String loginName, File file, SwitchboardSession session)
          ÇØ´ç sessionId ¼¼¼ÇÀ¸·Î ÆÄÀÏÀ» Àü¼ÛÇϱâ À§ÇØ loginName¿¡°Ô ÆÄÀÏÀ» ¼Û½Å¿äû ¸Þ½ÃÁö¸¦ º¸³½´Ù.
 boolean sendMessage(MimeMessage msg, SwitchboardSession session)
          ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù.
 boolean sendMessage(String loginName, MimeMessage msg)
          ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù.
 boolean sendMessage(String loginName, MimeMessage msg, String sessionId)
          ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù.
 void setInitialStatus(String code)
          ·Î±×ÀÎ ÇÒ¶§ÀÇ Ãʱ⠻óŰªÀ» ¼³Á¤ÇÑ´Ù.
 void setMyFriendlyName(String newName)
           
 void setMyStatus(String status)
          ÀÚ½ÅÀÇ »óŸ¦ º¯°æÇÑ´Ù.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listeners

protected ArrayList listeners
Constructor Detail

MSNMessenger

public MSNMessenger()
MSNMessenger °´Ã¼¸¦ »ý¼ºÇÑ´Ù.


MSNMessenger

public MSNMessenger(String loginName,
                    String password)
ÁÖ¾îÁø accountÁ¤º¸·Î MSNMessenger °´Ã¼¸¦ »ý¼ºÇÑ´Ù.

Parameters:
loginName - »ç¿ëÇÒ login À̸§. (e.g. windrath@hotmail.com)
password - ÀÚ½ÅÀÇ password
Method Detail

getBuddyGroup

public BuddyGroup getBuddyGroup()

getLocalCopy

public LocalCopy getLocalCopy()

setInitialStatus

public void setInitialStatus(String code)
·Î±×ÀÎ ÇÒ¶§ÀÇ Ãʱ⠻óŰªÀ» ¼³Á¤ÇÑ´Ù. ±âº»°ªÀ¸·Î´Â '¿Â¶óÀÎ'ÀÌ´Ù. À̰÷¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â »óŰªµéÀº UserStatus ÀÎÅÍÆäÀ̽º¿¡ ¼±¾ðµÇ¾îÀÖ´Â »ó¼öµéÀ» »ç¿ëÇÏ¸é µÈ´Ù.


getInitialStatus

public String getInitialStatus()
ÇöÀç ¼³Á¤µÈ Ãʱ⠻óÅÂÄڵ带 ¾ò¾î¿Â´Ù.


isLoggedIn

public boolean isLoggedIn()
ÇöÀç ·Î±×ÀÎ µÈ »óÅÂÀÎÁö È®ÀÎÇÑ´Ù.


addMsnListener

public void addMsnListener(MsnListener l)
¼­¹ö·ÎºÎÅÍ ¹ß»ýµÇ´Â À̺¥Æ®³ª ¸Þ½ÃÁöµéÀ» ó¸®ÇÒ MsnListner ÀÎÅÍÆäÀ̽º¸¦ ¼³Á¤ÇÑ´Ù. ¿ø·¡´Â multi-listener¸¦ Áö¿øÇؾßÇÏÁö¸¸, ÇöÀç´Â ´ÜÀÏ Listener ±¸Á¶¸¦ »ç¿ëÇÑ´Ù. ±×·¯¹Ç·Î ¹Ýµå½Ã ¸®½º³Ê¸¦ ¼³Á¤ÇؾßÇÑ´Ù.


fireInstantMessageEvent

public void fireInstantMessageEvent(SwitchboardSession ss,
                                    MsnFriend friend,
                                    MimeMessage mime)

fireJoinSessionEvent

public void fireJoinSessionEvent(SwitchboardSession ss,
                                 MsnFriend friend)

fireListOnlineEvent

public void fireListOnlineEvent(MsnFriend friend)

fireLoginCompleteEvent

public void fireLoginCompleteEvent(MsnFriend own)

firePartSessionEvent

public void firePartSessionEvent(SwitchboardSession ss,
                                 MsnFriend friend)

fireProgressTypingEvent

public void fireProgressTypingEvent(SwitchboardSession ss,
                                    MsnFriend friend,
                                    String typeuser)

fireSwitchboardSessionStartedEvent

public void fireSwitchboardSessionStartedEvent(SwitchboardSession ss)

fireSwitchboardSessionEndedEvent

public void fireSwitchboardSessionEndedEvent(SwitchboardSession ss)

fireUserOnlineEvent

public void fireUserOnlineEvent(MsnFriend friend)

fireUserOfflineEvent

public void fireUserOfflineEvent(String loginName)

fireFilePostedEvent

public void fireFilePostedEvent(SwitchboardSession ss,
                                int cookie,
                                String filename,
                                int filesize)

fireFileSendAcceptedEvent

public void fireFileSendAcceptedEvent(SwitchboardSession ss,
                                      int cookie)

fireFileSendRejectedEvent

public void fireFileSendRejectedEvent(SwitchboardSession ss,
                                      int cookie,
                                      String reason)

fireFileSendStartedEvent

public void fireFileSendStartedEvent(VolatileTransferServer server)

fireFileReceiveStartedEvent

public void fireFileReceiveStartedEvent(VolatileDownloader down)

fireFileSendErrorEvent

public void fireFileSendErrorEvent(VolatileTransferServer server,
                                   Throwable e)

fireFileReceiveErrorEvent

public void fireFileReceiveErrorEvent(VolatileDownloader down,
                                      Throwable e)

fireWhoAddedMeEvent

public void fireWhoAddedMeEvent(MsnFriend friend)

fireWhoRemovedMeEvent

public void fireWhoRemovedMeEvent(MsnFriend friend)

fireBuddyListModifiedEvent

public void fireBuddyListModifiedEvent()

fireAddFailedEvent

public void fireAddFailedEvent(int errcode)

fireLoginErrorEvent

public void fireLoginErrorEvent()

fireRenameNotifyEvent

public void fireRenameNotifyEvent(MsnFriend friend)

removeMsnListener

public void removeMsnListener(MsnListener l)
ÇØ´ç À̺¥Æ®¸®½º³Ê¸¦ ÇØÁ¦ÇÑ´Ù.


getLoginName

public String getLoginName()
¼³Á¤µÈ ·Î±×ÀÎ À̸§(LoginName)À» ¹ÝȯÇÑ´Ù.


getPassword

public String getPassword()
»ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¹ÝȯÇÑ´Ù.


getOwner

public MsnFriend getOwner()
ÀÚ±â ÀÚ½ÅÀÇ MsnFriend ÀνºÅϽº¸¦ ¹ÝȯÇÑ´Ù. ¸¸¾à ·Î±×ÀÎÇÏÁö ¾Ê¾Ò´Ù¸é, nullÀ» ¹ÝȯÇÒ °ÍÀÌ´Ù.


login

public void login(String username,
                  String password)
ÁÖ¾îÁø À̸§°ú ºñ¹Ð¹øÈ£·Î ·Î±×ÀÎÀ» ½ÃÀÛÇÑ´Ù. ÀÌ·² °æ¿ì »ý¼ºÀÚ¿¡¼­ ¹ÞÀº À̸§°ú ºñ¹Ð¹øÈ£´Â ¹«½ÃµÈ´Ù.


login

public void login()
·Î±×ÀÎÀ» ½ÃÀÛÇÑ´Ù.


logout

public void logout()
¿­·ÁÀÖ´ø ¸ðµç Switchboard session°úÀÇ ¿¬°áÀ» Á¾·áÇϰí DS, NS¿¡ LogoutÇÑ ÈÄ ¿¬°áÀ» Á¾·áÇÑ´Ù.


setMyStatus

public void setMyStatus(String status)
                 throws IOException
ÀÚ½ÅÀÇ »óŸ¦ º¯°æÇÑ´Ù. »óÅ ¹®ÀÚ¿­Àº UserStatus ÀÎÅÍÆäÀ̽º¿¡ Á¤ÀǵǾîÀÖ´Â ¹®ÀÚ¿­¸¸À» »ç¿ëÇÏ¿©¾ß¸¸ ÇÑ´Ù. ·Î±×ÀÎÀÌ ³¡³­ Á÷ÈÄ¿¡´Â Default·Î ¿Â¶óÀÎ »óŰ¡ µÇ¾îÀÖÀ» °ÍÀÌ´Ù.

IOException

getMyStatus

public String getMyStatus()
ÇöÀç ÀÚ±â ÀÚ½ÅÀÇ »óÅÂÄڵ尪À» ¾ò¾î¿Â´Ù.


setMyFriendlyName

public void setMyFriendlyName(String newName)
                       throws IOException
IOException

doCall

public void doCall(String loginName)
            throws IOException
´ëÈ­¿äûÀ» °Ç´Ù. ºñµ¿±âÀûÀ¸·Î 󸮵DZ⠶§¹®¿¡, ÀÌ ¸Þ¼ÒµåÀÇ ÀÛ¾÷ÀÌ ³¡³µ´Ù°í ÇØ¼­ ¿¬°áÀÌ ÀÌ·ç¾îÁö´Â °ÍÀº ¾Æ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â °ð¹Ù·Î return µÈ´Ù.

º¸Åë ¿¬°áÀÌ ÀÌ·ç¾îÁö´Âµ¥´Â 2-3ÃÊ Á¤µµÀÇ ½Ã°£ÀÌ °É¸°´Ù.

IOException

addFriend

public void addFriend(String loginName)
               throws IOException
IOException

removeFriend

public void removeFriend(String loginName)
                  throws IOException
IOException

doCallWait

public SwitchboardSession doCallWait(String loginName)
                              throws IOException,
                                     InterruptedException
doCall°ú °°Àº ÀÏÀ» ÇÏÁö¸¸, ¼¼¼ÇÀÌ ¿¬°áµÉ¶§±îÁö °è¼Ó ±â´Ù¸°´Ù´Â °ÍÀÌ ´Ù¸£´Ù.

Object.wait ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ±â´Ù¸®°Ô µÇ°í, ¼¼¼Ç ¿¬°á ¸Þ½ÃÁö°¡ ¿Ã¶§±îÁö °è¼Ó ´ë±âÇÏ°Ô µÈ´Ù.

IOException
InterruptedException

findSwitchboardSession

public SwitchboardSession findSwitchboardSession(String loginName)
ÇØ´ç loginNameÀÌ Æ÷ÇÔµÈ ¼¼¼ÇÁß ¹«ÀÛÀ§·Î ù¹øÂ° ¼¼¼ÇÀ» ã¾Æ ¹ÝȯÇÑ´Ù. ¸¸¾à ±×·¯ÇÑ ¼¼¼ÇÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, nullÀ» ¹ÝȯÇÑ´Ù.

Returns:
loginNameÀÌ Æ÷ÇÔµÈ ¼¼¼ÇÀÌ ¾ø´Ù¸é nullÀ» ¹Ýȯ.

findSwitchboardSessionAt

public SwitchboardSession findSwitchboardSessionAt(String loginName)
ÇØ´ç loginName°ú 1:1·Î ¿¬°áµÈ ¼¼¼ÇÀ» ã¾ÆÁØ´Ù. ¸¸¾à ¼¼¼ÇÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, nullÀ» ¹ÝȯÇÑ´Ù.


sendMessage

public boolean sendMessage(String loginName,
                           MimeMessage msg)
                    throws IOException
ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù. ¸¸¾à loginNameÀ» °¡Áø »ç¿ëÀÚ¿ÍÀÇ ¿­¸° sessionÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, Áï½Ã false¸¦ ¹ÝȯÇÒ °ÍÀÌ´Ù.

Returns:
true - ¼º°øÀûÀ¸·Î Àü¼ÛÇÏ¿´À»¶§, false - º¸³»±â°¡ ½ÇÆÐÇßÀ»¶§.
IOException

sendMessage

public boolean sendMessage(String loginName,
                           MimeMessage msg,
                           String sessionId)
                    throws IOException
ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù. ´ë½Å loginNameÀÌ ¿©·¯°³ÀÏ °æ¿ì sessionId¿Í ÀÏÄ¡ÇÏ´Â ¼¼¼ÇÀ¸·Î¸¸ Àü¼ÛÇÑ´Ù. ¸¸¾à ÀÏÄ¡ÇÏ´Â ¼¼¼ÇÀÌ ¾ø´Ù¸é ¸Þ½ÃÁö´Â Àü´ÞµÇÁö ¾ÊÀ» °ÍÀ̸ç, sessionId°¡ nullÀ̶ó¸é ù¹øÂ° ¹ß°ßµÇ´Â ÀÓÀÇÀÇ ¼¼¼Ç¿¡ Àü´ÞµÉ °ÍÀÌ´Ù.

¹°·Ð sessionId°¡ nullÀ̰í loginNameÀ» Æ÷ÇÔÇÏ´Â ¼¼¼ÇÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é Àü¼ÛµÇÁö ¾Ê°í false¸¦ ¹ÝȯÇÑ´Ù.

Returns:
true - ¼º°øÀûÀ¸·Î Àü¼ÛÇÏ¿´À»¶§, false - º¸³»±â°¡ ½ÇÆÐÇßÀ»¶§.
IOException

sendMessage

public boolean sendMessage(MimeMessage msg,
                           SwitchboardSession session)
                    throws IOException
ÁÖ¾îÁø loginNameÀ» °¡Áø »ç¿ëÀÚ¿¡°Ô MIME ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù. ¸¸¾à ÀÏÄ¡ÇÏ´Â ¼¼¼ÇÀÌ ¾ø´Ù¸é ¸Þ½ÃÁö´Â Àü´ÞµÇÁö ¾ÊÀ» °ÍÀ̸ç, sessionÀÌ nullÀ̶ó¸é Àü¼ÛµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

Returns:
true - ¼º°øÀûÀ¸·Î Àü¼ÛÇÏ¿´À»¶§, false - º¸³»±â°¡ ½ÇÆÐÇßÀ»¶§.
IOException

sendFileRequest

public void sendFileRequest(String loginName,
                            File file,
                            String sessionId)
                     throws IOException
ÇØ´ç sessionId ¼¼¼ÇÀ¸·Î ÆÄÀÏÀ» Àü¼ÛÇϱâ À§ÇØ loginName¿¡°Ô ÆÄÀÏÀ» ¼Û½Å¿äû ¸Þ½ÃÁö¸¦ º¸³½´Ù.

IOException

sendFileRequest

public void sendFileRequest(String loginName,
                            File file,
                            SwitchboardSession session)
                     throws IOException
ÇØ´ç sessionId ¼¼¼ÇÀ¸·Î ÆÄÀÏÀ» Àü¼ÛÇϱâ À§ÇØ loginName¿¡°Ô ÆÄÀÏÀ» ¼Û½Å¿äû ¸Þ½ÃÁö¸¦ º¸³½´Ù.

IOException