<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    問征夫以前路
    感謝所有關心過支持過我的人, 感謝所有恨過我嘲笑過我的人 !
    posts - 30,comments - 147,trackbacks - 0
      red5的共享對象,使服務器和客戶端的交互變的更簡單和直接,服務器把處理完的業務邏輯放在共享對象(SharedObject)中,客戶端只需要調用(SharedObject),就可以直接操作后臺所返回的數據。所有的red5應用程序都繼承自ApplicationAdapter類:
     1import java.util.HashMap;
     2import java.util.Map;
     3
     4import org.red5.server.adapter.ApplicationAdapter;
     5import org.red5.server.api.IClient;
     6import org.red5.server.api.IConnection;
     7import org.red5.server.api.IScope;
     8import org.red5.server.api.so.ISharedObject;
     9
    10
    11/**
    12 * red5后臺服務器與flash前臺交互類
    13 * @author zhanghh
    14 *
    15 */

    16public class Application extends ApplicationAdapter{
    17    
    18    private Map<String, IConnection> onLineClient = new HashMap<String, IConnection>();
    19    
    20    
    21    // 屬性
    22    private IScope appScope;
    23
    24    private String username;
    25
    26    private ISharedObject so;
    27    
    28    private String sharedName;
    29
    30    /**
    31     * 客戶端連接服務器的方法
    32     */

    33    public String createSharedObjectPond(Object[] params){
    34        //接收客戶端傳過來的參數值
    35        sharedName = (String) params[0];
    36        
    37        //創建共享對象
    38        createSharedObject(appScope,sharedName,true);
    39        so = getSharedObject(appScope, sharedName);
    40    
    41        //引用共享對象的監聽器
    42        so.addSharedObjectListener(new SampleSharedObjectListener());
    43
    44        
    45        //將此三個屬性值放入共享對象中
    46        so.beginUpdate();
    47        so.setAttribute("temperature"20);
    48          so.setAttribute("humidity"50);
    49          so.setAttribute("nutrition"85);
    50        so.endUpdate();
    51        
    52        return sharedName;
    53    }

    54    
    55    /**
    56     * 此應用于開始運行時觸發的方法
    57     */

    58    public boolean appStart(IScope app) {
    59        System.out.println("red5系統已啟動~!");
    60        if (!super.appStart(app)) {
    61            return false;
    62        }

    63        appScope = app;
    64        return true;
    65
    66    }

    67
    68    /**
    69     * 連接服務器
    70     */

    71    public boolean connect(IConnection conn, IScope scope, Object[] params) {
    72            username = "";
    73           // 登入時將連接ID和連接信息形成對應關系并存入在線列表
    74           String link_id = conn.getClient().getId();
    75           System.out.println("連接--->link_id:"+link_id);
    76           onLineClient.put(username, conn);
    77
    78           return true;
    79        
    80    }

    81    
    82    /**
    83     * 斷開服務器
    84     */

    85    public void disconnect(IConnection conn, IScope scope) {
    86        super.disconnect(conn, scope);
    87        System.out.println("歡迎下次光臨,再見!");
    88    }

    89    
    90}

    91

    為了得到客戶端共享對象的改變通報,監聽器必須繼承接口ISharedObjectListener:

     1import org.red5.server.api.so.ISharedObjectBase;
     2import org.red5.server.api.so.ISharedObjectListener;
     3
     4
     5/**
     6 * 共享對象的監聽實現類
     7 * @author zhanghh
     8 *
     9 */

    10public class SampleSharedObjectListener implements ISharedObjectListener{
    11
    12    /**
    13     * 監聽客戶端屬性的變化值
    14     */

    15    @Override
    16    public void onSharedObjectUpdate(ISharedObjectBase so, String key, Object value) {
    17        //共享對象so的屬性<key>
    18        //被修改成<value>
    19        //客戶端有任何的屬性值改變,都會調用onSharedObjectUpdate()方法
    20    }

    21    @Override
    22    public void onSharedObjectConnect(ISharedObjectBase so) {
    23        //red5每次連接的時候調用此方法
    24    }

    25    @Override
    26    public void onSharedObjectClear(ISharedObjectBase arg0) {
    27        // TODO Auto-generated method stub
    28    }

    29    @Override
    30    public void onSharedObjectDelete(ISharedObjectBase arg0, String arg1) {
    31        // TODO Auto-generated method stub
    32    }

    33    @Override
    34    public void onSharedObjectDisconnect(ISharedObjectBase arg0) {
    35        // TODO Auto-generated method stub
    36    }

    37    @Override
    38    public void onSharedObjectSend(ISharedObjectBase so, String method, List params) {
    39        // TODO Auto-generated method stub
    40    }

    41    @Override
    42    public void onSharedObjectUpdate(ISharedObjectBase arg0, IAttributeStore arg1) {
    43        // TODO Auto-generated method stub
    44    }

    45    @Override
    46    public void onSharedObjectUpdate(ISharedObjectBase arg0, Map<String, Object> arg1) {
    47        // TODO Auto-generated method stub
    48    }

    49}

    50

    共享對象在被服務器處理完業務邏輯之后,要把處理后的值廣播給客戶端,最好作為注冊句柄被通報。
    使用beginUpdate() 和 endUpdate()方法:

    1//將此三個屬性值放入共享對象中
    2        so.beginUpdate();
    3        so.setAttribute("temperature"20);
    4          so.setAttribute("humidity"50);
    5          so.setAttribute("nutrition"85);
    6        so.endUpdate();



    posted on 2009-05-26 18:09 kenzhang 閱讀(3900) 評論(3)  編輯  收藏

    FeedBack:
    # re: red5創建和使用共享對象SharedObject[未登錄]
    2009-05-28 20:26 | conjs
    我一直在研究 red5 , 有時間我們交流一下.  回復  更多評論
      
    # re: red5創建和使用共享對象SharedObject
    2009-05-31 22:23 | kenzhang
    @conjs
    好啊,red5我剛接觸不久,請多指教~!  回復  更多評論
      
    # re: red5創建和使用共享對象SharedObject
    2009-06-24 10:19 | kenzhang
    @conjs
    請問red5里面有沒有任務調度的方法?
    類似于quartz  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码国产片| 久热综合在线亚洲精品| 亚洲日日做天天做日日谢| 99精品视频免费在线观看| 亚洲第一成年男人的天堂| 国产一精品一AV一免费| 亚洲精品乱码久久久久久久久久久久| jizz免费在线影视观看网站| 国产亚洲精久久久久久无码AV| 亚洲阿v天堂在线2017免费| 亚洲国产主播精品极品网红| 免费人成视频在线观看免费| 亚洲欧洲精品成人久久奇米网 | 亚洲依依成人精品| 国产精品视频免费观看| 亚洲一区二区三区高清不卡| 最新仑乱免费视频| 免费大片av手机看片| 亚洲欧洲自拍拍偷精品 美利坚| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 无码人妻一区二区三区免费视频 | 亚洲国产免费综合| 国产精品综合专区中文字幕免费播放 | 尤物视频在线免费观看| 久久亚洲国产午夜精品理论片| 99精品国产成人a∨免费看| 亚洲国产精品综合一区在线| 免费无码成人AV片在线在线播放| 看一级毛片免费观看视频| 亚洲综合精品网站| 91精品国产免费久久国语蜜臀 | 亚洲精品在线免费观看| 午夜男人一级毛片免费| 精品久久久久久国产免费了| 亚洲爆乳无码专区| 国产乱码免费卡1卡二卡3卡| 日本中文字幕免费看| 久久久久亚洲AV成人片| 国产高清在线免费| 午夜视频免费在线观看| 亚洲AV一区二区三区四区|