Have you noticed the fix for tracker #119? I committed the fix this morning (Shanghai time). So for the trunk, subscriber should be notified when it connects to a live publisher.
On 8/18/06, Dan Rossi <[EMAIL PROTECTED]> wrote:
hi there, ive been trying to work out how to notify a currently subscribed client if a live broadcast is available or not when they connect. I have a method to invoke currently connected clients that a show has started with this code, when publishing in record mode i had to make a patch to some code to be able to get the published name as referenced on trac.
public void streamPublishStart(IBroadcastStream stream) {
// Notify all the clients that the stream had been started
//log.info(this.archivePath);
isLive = true;
streamName = stream.getPublishedName();
log.info("stream broadcast start: "+stream.getPublishedName());
ISharedObject so = getSharedObject(scope, "broadcaster");
so.setAttribute("isLive", true);
IConnection current = Red5.getConnectionLocal();
Iterator<IConnection> it = scope.getConnections();
while (it.hasNext()) {
IConnection conn = it.next();
if (conn.equals(current))
// Don't notify current client
continue;
if (conn instanceof IServiceCapableConnection) {
((IServiceCapableConnection) conn).invoke("onBroadcast", new Object[]{stream.getPublishedName()}, this);
log.info("sending notification to "+conn);
}
}
}
now im also needing to notify the client just connecting so they dont get a trailer playlist and connect instead
public void streamSubscriberStart(ISubscriberStream stream) {
IConnection conn = Red5.getConnectionLocal();
Object[] streams = getStreams().toArray();
String streamName = streams[0].toString();
if (hasBroadcastStream(conn.getScope(), streams[0].toString())) {
log.info("Connecting to live stream: " + streamName);
if (conn instanceof IServiceCapableConnection) {
((IServiceCapableConnection) conn).invoke("onBroadcast", new Object[]{streamName}, this);
log.info("sending notification to "+conn);
}
}
}
howqever im unsure how to get the current client and invoke a method to them only this seems to constantly repeat itself its kinda working, it just keeps looping and invoking the method :\ There will be only one live show at a time so ive set it to the first array key.
let me know.
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org
--
Best Regards
Steven Gong
_______________________________________________ Red5 mailing list [email protected] http://osflash.org/mailman/listinfo/red5_osflash.org
