<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的共享對象,使服務器和客戶端的交互變的更簡單和直接,服務器把處理完的業(yè)務邏輯放在共享對象(SharedObject)中,客戶端只需要調用(SharedObject),就可以直接操作后臺所返回的數(shù)據(jù)。所有的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        //接收客戶端傳過來的參數(shù)值
    35        sharedName = (String) params[0];
    36        
    37        //創(chuàng)建共享對象
    38        createSharedObject(appScope,sharedName,true);
    39        so = getSharedObject(appScope, sharedName);
    40    
    41        //引用共享對象的監(jiān)聽器
    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     * 此應用于開始運行時觸發(fā)的方法
    57     */

    58    public boolean appStart(IScope app) {
    59        System.out.println("red5系統(tǒng)已啟動~!");
    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

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

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

    10public class SampleSharedObjectListener implements ISharedObjectListener{
    11
    12    /**
    13     * 監(jiān)聽客戶端屬性的變化值
    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

    共享對象在被服務器處理完業(yè)務邏輯之后,要把處理后的值廣播給客戶端,最好作為注冊句柄被通報。
    使用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 閱讀(3903) 評論(3)  編輯  收藏

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

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


    網站導航:
     
    主站蜘蛛池模板: 羞羞视频在线免费观看| 免费视频一区二区| 亚洲黄片手机免费观看| 两个人看www免费视频| 亚洲成a人片在线观| 在线观看成人免费| 中国好声音第二季免费播放| 亚洲AV无码国产丝袜在线观看 | 中国性猛交xxxxx免费看| 亚洲美女视频网址| 国产一区二区三区免费视频| 大地资源在线资源免费观看| 久久夜色精品国产噜噜亚洲a| 亚洲精品国产精品乱码不卞| 91制片厂制作传媒免费版樱花 | 亚洲高清免费在线观看| 欧美色欧美亚洲另类二区| 亚洲国产精彩中文乱码AV| 好男人www免费高清视频在线| aa级女人大片喷水视频免费| 亚洲jjzzjjzz在线观看| 亚洲日韩精品无码专区网址| 毛片免费全部免费观看| 97超高清在线观看免费视频| 亚洲av永久无码精品秋霞电影秋| 亚洲AV无码专区国产乱码4SE| 免费网站看v片在线香蕉| 日本人成在线视频免费播放| 立即播放免费毛片一级| 久久亚洲AV成人无码电影| 久久久亚洲精品蜜桃臀| 成人毛片免费视频| 2020因为爱你带字幕免费观看全集| 免费毛片毛片网址| 亚洲一区二区三区写真| 亚洲国产精品第一区二区| 亚洲日韩国产精品第一页一区| 日韩特黄特色大片免费视频| 亚洲香蕉免费有线视频| 男人j进入女人j内部免费网站| japanese色国产在线看免费|