2011-07-21 53 views
0
public boolean connect(IConnection conn, IScope scope, Object[] params) 
    { 
      IClient client = conn.getClient(); 
      log.info("app connect " + conn.getClient().getId()); 
      client.setAttribute("stamp", new Long(0)); 
     return true; 
    } 

這是被稱爲每一個客戶在Red5的服務器我的自定義應用程序連接時間的方法,以確定發佈者和消費者,所以是有辦法來識別,如果客戶端是用戶(消費者,查看器)或發佈者(在我的服務器上流的用戶)。如何使用Red5的API

最好成績

+0

當然,你可以從你的SWF應用程序發送一些身份PARAMS。 –

+0

@Dmitry Polushkin所以只有使用Object [] params的方法才能找到,我認爲我可以在發佈時識別發佈者,就像Interface Method publishedStarted();比我可以驗證他們,並決定是否應該允許或不允許他們開始發佈。 – Burimi

回答

0

要禁止或允許發佈或訂閱用戶,你可以使用AppStart的回調方法裏面那些方法:

  • registerStreamPlaybackSecurity
  • registerStreamPublishSecurity

如需更多信息,看到:

http://dl.fancycode.com/red5/api/org/red5/server/adapter/MultiThreadedApplicationAdapter.html

我使用JRuby,這是很容易做到:

registerStreamPlaybackSecurity do |scope, name, start, len, flush| 
    false # no playback allowed 
end 
registerStreamPublishSecurity do |scope, name, mode| 
    rand(1) % 1 == 0 # publishing (recording) sometimes allowed, sometimes no 
end 
+0

非常感謝,我表示你的答案是正確的,但我正在使用Java來代替,我將在API中看到我能用這些東西做什麼。 – Burimi