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

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

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

    問(wèn)征夫以前路
    感謝所有關(guān)心過(guò)支持過(guò)我的人, 感謝所有恨過(guò)我嘲笑過(guò)我的人 !
    posts - 30,comments - 147,trackbacks - 0
      red5的共享對(duì)象,使服務(wù)器和客戶端的交互變的更簡(jiǎn)單和直接,服務(wù)器把處理完的業(yè)務(wù)邏輯放在共享對(duì)象(SharedObject)中,客戶端只需要調(diào)用(SharedObject),就可以直接操作后臺(tái)所返回的數(shù)據(jù)。所有的red5應(yīng)用程序都繼承自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后臺(tái)服務(wù)器與flash前臺(tái)交互類
    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     * 客戶端連接服務(wù)器的方法
    32     */

    33    public String createSharedObjectPond(Object[] params){
    34        //接收客戶端傳過(guò)來(lái)的參數(shù)值
    35        sharedName = (String) params[0];
    36        
    37        //創(chuàng)建共享對(duì)象
    38        createSharedObject(appScope,sharedName,true);
    39        so = getSharedObject(appScope, sharedName);
    40    
    41        //引用共享對(duì)象的監(jiān)聽(tīng)器
    42        so.addSharedObjectListener(new SampleSharedObjectListener());
    43
    44        
    45        //將此三個(gè)屬性值放入共享對(duì)象中
    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     * 此應(yīng)用于開(kāi)始運(yùn)行時(shí)觸發(fā)的方法
    57     */

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

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

    67
    68    /**
    69     * 連接服務(wù)器
    70     */

    71    public boolean connect(IConnection conn, IScope scope, Object[] params) {
    72            username = "";
    73           // 登入時(shí)將連接ID和連接信息形成對(duì)應(yīng)關(guān)系并存入在線列表
    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     * 斷開(kāi)服務(wù)器
    84     */

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

    89    
    90}

    91

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

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

    10public class SampleSharedObjectListener implements ISharedObjectListener{
    11
    12    /**
    13     * 監(jiān)聽(tīng)客戶端屬性的變化值
    14     */

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

    21    @Override
    22    public void onSharedObjectConnect(ISharedObjectBase so) {
    23        //red5每次連接的時(shí)候調(diào)用此方法
    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

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

    1//將此三個(gè)屬性值放入共享對(duì)象中
    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) 評(píng)論(3)  編輯  收藏

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲小视频在线播放| 亚洲成人中文字幕| 亚洲中文字幕无码一区| 亚洲精品亚洲人成人网| 亚洲欧洲免费视频| 在线a亚洲老鸭窝天堂av高清| 久久精品亚洲日本波多野结衣| 最好2018中文免费视频| 18禁在线无遮挡免费观看网站| 182tv免费视视频线路一二三| 日韩在线a视频免费播放| 亚洲午夜成人精品电影在线观看| 亚洲Av综合色区无码专区桃色| 亚洲国产综合在线| 看亚洲a级一级毛片| 久久久精品午夜免费不卡| 野花高清在线观看免费3中文 | 日韩一区二区在线免费观看| 亚洲国产精品自在拍在线播放| 亚洲gv白嫩小受在线观看| 亚洲熟女www一区二区三区| 产传媒61国产免费| 国产91免费视频| 免费A级毛片在线播放不收费| 亚洲av永久无码精品漫画| 国产成人亚洲综合网站不卡| 国产在线播放线91免费| 免费无码AV片在线观看软件| 亚洲午夜日韩高清一区| 亚洲一区二区三区在线观看蜜桃| 一边摸一边桶一边脱免费视频| 5g影院5g天天爽永久免费影院| 免费久久精品国产片香蕉| 亚洲专区先锋影音| 亚洲综合激情另类专区| 亚洲精品人成电影网| 牛牛在线精品观看免费正| 很黄很黄的网站免费的| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产免费一区二区三区免费视频| 亚洲三级高清免费|