2007年2月9日 星期五

telnet的各種連線情況

Telnet有好幾種斷連線的情形,每種情形都需要個別處理。

  1. 正常連線(normal login):此類連線是使用者正當地從面連入,且系統中沒有已存在的此使用者,因此系統可以正常地讀取並載入使用者資料與avatar,並且將此account的資料與avatar註冊入一map(Name of account, avatar)中,名為loginedAccountMap,以利第三種登入之檢查。
  2. 斷線重連(login from disconnection):從異常斷線回復,在回復連線之前,一定發生過異常斷線事件,此事件會保留使用者的avatar,但是將它的shell設置為基本shell,並將它的所有頻道註銷(unregister),並將此斷線使用者移入一個特別的map(Name of Account, Avatar)中。當登入時系統得查詢此特別map,若是使用者帳號在此map中,則將此Avatar拿出並重新設置shell以及頻道註冊。
  3. 取代式登入(replacement login):一個使用者以目前已在線上使用的帳號登入,則使用此方法。登入時先檢查LoginedAccountMap,若發現此帳號已經在使用,則直接將map中的avatar提出,並發布訊息在他身處的房間中,通知其他人他已被取代,並對此avatar設置shell,將舊shell設定setConnection(false)強迫結束。

沒有留言: