| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User 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);
}
} Danke Geändert von goro (23-06-2007 um 19:22 Uhr) |
| | |
| | #2 (permalink) |
| ~~~~~~~~~~~~ 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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |