clientDic.put(loginname, conn);

ISharedObject so = getSharedObject(scope, "UserSO");

if(so==null)

{

createSharedObject(scope, "UserSO", true);

so = getSharedObject(scope, "UserSO");

}

}

將當前的用戶名列表保存到SharedObject裏,我們暫定其名稱為UserName:

if(clientDic.keySet().contains(loginname))

{

rejectClient("The same user has logged in already.");

}

else

{

clientDic.put(loginname, conn);

ISharedObject so = getSharedObject(scope, "UserSO");

if(so==null)

{

createSharedObject(scope, "UserSO", true);

so = getSharedObject(scope, "UserSO");

}

so.setAttribute("userlist", clientDic.keySet().toArray());

}

在方法disconnect裏,我們規定如下邏輯:判斷斷開的用戶是否存在於當前用戶列表,如果存在就刪除。

String loginname = conn.getAttribute("UserName").toString();

if(loginname!=null)

{

if(clientDic.keySet().contains(loginname))

{

clientDic.remove(loginname);

ISharedObject so = getSharedObject(scope, "UserSO");

if(so!=null)

{

so.setAttribute("userlist", clientDic.keySet().toArray());

}

}

}

兩個方法實現完畢後,完整的代碼如下:

package com.red5app;

import java.util.HashMap;

import java.util.Map;