[Red5commits] [1165] moved bandwidth measurement to ApplicationAdapter? for the applications that nee
jbauch
luke at codegent.com
Thu Jul 13 16:30:05 EDT 2006
moved bandwidth measurement to ApplicationAdapter? for the applications that need it (Trac #56)
Timestamp: 07/14/06 06:26:04 (less than one hour ago)
Change: 1165
Author: jbauch
Files (see diff or trac for details):
java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java
java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java
java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java
java/server/trunk/webapps/oflaDemo/WEB-INF/src/org/red5/server/webapp/oflaDemo/Application.java
Trac: http://mirror1.cvsdude.com/trac/osflash/red5/changeset/1165
Index: /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java
===================================================================
--- /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java (revision 1132)
+++ /java/server/trunk/src/org/red5/server/adapter/ApplicationAdapter.java (revision 1165)
@@ -40,7 +40,9 @@
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
+import org.red5.server.api.Red5;
import org.red5.server.api.ScopeUtils;
import org.red5.server.api.scheduling.IScheduledJob;
import org.red5.server.api.scheduling.ISchedulingService;
+import org.red5.server.api.service.ServiceUtils;
import org.red5.server.api.so.ISharedObject;
import org.red5.server.api.so.ISharedObjectService;
@@ -194,4 +196,46 @@
public void roomLeave(IClient client, IScope room){
log.debug("roomLeave: "+client+" << "+room);
+ }
+
+ /**
+ * Try to measure bandwidth of current connection.
+ *
+ * This is required for some FLV player to work because they require
+ * the "onBWDone" method to be called on the connection.
+ */
+ public void measureBandwidth() {
+ measureBandwidth(Red5.getConnectionLocal());
+ }
+
+ /**
+ * Try to measure bandwidth of given connection.
+ *
+ * This is required for some FLV player to work because they require
+ * the "onBWDone" method to be called on the connection.
+ *
+ * @param conn
+ * the connection to measure the bandwidth for
+ */
+ public void measureBandwidth(IConnection conn) {
+ // dummy for now, this makes flv player work
+ // they dont wait for connected status they wait for onBWDone
+ ServiceUtils.invokeOnConnection(conn, "onBWDone", new Object[]{});
+ /*
+ ServiceUtils.invokeOnConnection(conn, "onBWCheck", new Object[] {}, new IPendingServiceCallback() {
+ public void resultReceived(IPendingServiceCall call) {
+ log.debug("onBWCheck 1 result: " + call.getResult());
+ }
+ });
+ int[] filler = new int[1024];
+ ServiceUtils.invokeOnConnection(conn, "onBWCheck", new Object[] { filler }, new IPendingServiceCallback() {
+ public void resultReceived(IPendingServiceCall call) {
+ log.debug("onBWCheck 2 result: " + call.getResult());
+ ServiceUtils.invokeOnConnection(conn, "onBWDone", new Object[] { new Integer(1000), new Integer(300), new Integer(6000), new Integer(300) }, new IPendingServiceCallback() {
+ public void resultReceived(IPendingServiceCall call) {
+ log.debug("onBWDone result: " + call.getResult());
+ }
+ });
+ }
+ });*/
}
Index: /java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java
===================================================================
--- /java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java (revision 1162)
+++ /java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java (revision 1165)
@@ -300,5 +300,4 @@
boolean disconnectOnReturn = false;
- boolean runBandwidthCheck = false;
if(call.getServiceName() == null){
log.info("call: "+call);
@@ -344,5 +343,4 @@
conn.getChannel((byte) 2).write(new Ping((short)0,0,-1));
conn.ping();
- runBandwidthCheck = true;
} else {
log.debug("connect failed");
@@ -404,7 +402,4 @@
log.debug("sending reply");
channel.write(reply);
- if (runBandwidthCheck){
- conn.runBandwidthCheck();
- }
if (disconnectOnReturn)
conn.close();
Index: /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java
===================================================================
--- /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java (revision 1162)
+++ /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java (revision 1165)
@@ -387,28 +387,4 @@
}
- public void runBandwidthCheck() {
- // dummy for now, this makes flv player work
- // they dont wait for connected status they wait for onBWDone
- invoke("onBWDone",new Object[]{});
- /*
- invoke("onBWCheck", new Object[] {}, new IPendingServiceCallback() {
- public void resultReceived(IPendingServiceCall call) {
- log.debug("onBWCheck 1 result: " + call.getResult());
- }
- });
- int[] filler = new int[1024];
- invoke("onBWCheck", new Object[] { filler }, new IPendingServiceCallback() {
- public void resultReceived(IPendingServiceCall call) {
- log.debug("onBWCheck 2 result: " + call.getResult());
- invoke("onBWDone", new Object[] { new Integer(1000), new Integer(300), new Integer(6000), new Integer(300) }, new IPendingServiceCallback() {
- public void resultReceived(IPendingServiceCall call) {
- log.debug("onBWDone result: " + call.getResult());
- }
- });
- }
- });*/
-
- }
-
public String toString() {
return getClass().getSimpleName() + " from " + getRemoteAddress() + ":" + getRemotePort() +
Index: /java/server/trunk/webapps/oflaDemo/WEB-INF/src/org/red5/server/webapp/oflaDemo/Application.java
===================================================================
--- /java/server/trunk/webapps/oflaDemo/WEB-INF/src/org/red5/server/webapp/oflaDemo/Application.java (revision 1127)
+++ /java/server/trunk/webapps/oflaDemo/WEB-INF/src/org/red5/server/webapp/oflaDemo/Application.java (revision 1165)
@@ -23,4 +23,6 @@
@Override
public boolean appConnect(IConnection conn, Object[] params) {
+ // Trigger calling of "onBWDone", required for some FLV players
+ measureBandwidth(conn);
if (conn instanceof IStreamCapableConnection) {
IStreamCapableConnection streamConn = (IStreamCapableConnection) conn;
Note:
Diffs are chopped if more than 25k.
This is to get past the limit on the mailing list.
More information about the Red5commits
mailing list