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;