Zurück   Flashforum > Flash und Server > Flash Media Server

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-06-2007, 19:19   #1 (permalink)
Neuer User
 
Benutzerbild von goro
 
Registriert seit: Jun 2006
Beiträge: 34
red userliste

Hallo,
Ich will eine userlise für einen Chat mit Red5 implementieren. Hier mein Java Code:

Code:
package demo;

import java.util.Set;
import java.util.List;
import java.util.ArrayList;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.red5.samples.components.ClientManager;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IClient;
import org.red5.server.api.IScope;
import org.red5.server.api.service.ServiceUtils;
import org.red5.server.api.so.ISharedObject;

public class Application extends ApplicationAdapter {

	protected static Log log = LogFactory.getLog(Application.class.getName());
	
	/** Manager for the clients. */
	private ClientManager clientMgr = new ClientManager("clientlist", false);
	
	public void getList(IScope scope,String att){

		ISharedObject so = getSharedObject(scope, "clientlist");
		System.out.println("so ist " + so);
		System.out.println("attribute Names are " + so.getAttributeNames());
		for(int i=0;i<so.getAttributeNames().toArray().length;i++){
			System.out.println("client Names are " + so.getAttribute((String)so.getAttributeNames().toArray()[i]));		
		}		
	}
	public boolean connect(IConnection conn, IScope scope, Object[] params) {
		// Check if the user passed valid parameters.
		if (params == null || params.length == 0) {
			log.debug("Client didn't pass a username.");
			System.out.println("Client didn't pass a username.");
			// NOTE: "rejectClient" terminates the execution of the current method!
			rejectClient("No username passed.");
		}
		
		// Call original method of parent class.
		if (!super.connect(conn, scope, params))
			return false;
		
		String username = params[0].toString();
		String uid = conn.getClient().getId();
		log.debug("Client \"" + username + "\" (" + uid + ") connected.");
		System.out.println("Client \"" + username + "\" (" + uid + ") connected.");
		// Register the user in the shared object.
		clientMgr.addClient(scope, username, uid);
		// Notify client about unique id.
		ServiceUtils.invokeOnConnection(conn, "setClientID", new Object[]{uid});
		getList(scope,uid);
		return true;
	}
	
	
	public void disconnect(IConnection conn, IScope scope) {
		// Get the previously stored username.
		String uid = conn.getClient().getId();
		// Unregister user.
		String username = clientMgr.removeClient(scope, uid);
		if (username != null){
			log.debug("Client \"" + username + "\" (" + uid + ") disconnected.");
			System.out.println("Client \"" + username + "\" (" + uid + ") disconnected.");
		}else{
			log.debug("Client (" + uid + ") disconnected.");
			System.out.println("Client (" + uid + ") disconnected.");
		}
		// Call original method of parent class.
		super.disconnect(conn, scope);
	}
	
}
Wie Mann sieht in der Funktion getList mit System.out.print printe ich die Userlise in die Konsole aus. Wie mache ich das in Flash? Muss ich es mt nc.call() aufrufen? Wie kann ich die aktuelle Liste zu Flash weitergeben? So wie es momentan ist Man liest die Liste nur beim Einloggen. Ich will dass Man jede Änderung der Liste sehen kann. Soll ich eine Funktion in Java schreiben die die Liste liest und mittels setInterval diese Funktion je z.b. 10 Sekunden in Flash aufrufen? Gibt es andere Möglichkeit?
Danke

Geändert von goro (23-06-2007 um 19:22 Uhr)
goro ist offline   Mit Zitat antworten
Alt 23-06-2007, 19:27   #2 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
Ich weiss zwar nicht genau obs das ist was du suchst, aber versuchts mal unter dem Stichwort XMLSocket dann brauchst du dich nicht mit intervall oder ähnlichem herumärgern.

lg
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele