Éste es el código de la clase session que no se muestra en el tuto, la cual está basado en la user y me temo que reside aquí el fallo, a ver si alguien puede echarle una miradita (largo pero sencillo):
Código :
import mx.services.Log;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.remoting.debug.NetDebug;
class Session
{
public static var WRITE = 0;
public static var READ = 1;
public static var READALL = 2;
public static var SESSID = 3;
public static var ERASE = 4;
public var onWrite:Function;
public var onRead:Function;
public var onReadAll:Function;
public var onSessid:Function;
public var onErase:Function;
private var service:Service;
private var loG:Log;
function Session()
{
loG = new Log(Log.DEBUG, "logger");
loG.onLog = function(message:String):Void
{
trace("AMF --> " + message);
}
NetDebug.initialize();
service = new Service("http://localhost/project/amfphp/gateway.php", loG, "sessions", null, null);
}
function write(key:String, value_:String):Void
{
var pc:PendingCall = service.write(key, value_);
pc.responder = new RelayResponder(this, "_onWrite", "_onAmfError");
}
function read(key:String):Void
{
var pc:PendingCall = service.read(key);
pc.responder = new RelayResponder(this, "_onRead", "_onAmfError");
}
function readAll():Void
{
var pc:PendingCall = service.read();
pc.responder = new RelayResponder(this, "_onReadAll", "_onAmfError");
}
function sessid():Void
{
var pc:PendingCall = service.sessid();
pc.responder = new RelayResponder(this, "_onSessid", "_onAmfError");
}
function erase(key:String):Void
{
var pc:PendingCall = service.erase(key);
pc.responder = new RelayResponder(this, "_onErase", "_onAmfError");
}
function callBack (fc:Number, re:ResultEvent):Void
{
switch(fc)
{
case WRITE:
if(onWrite != null)
onWrite(re);
else
{
trace("");
trace("Función 'onWrite' no declarada");
}
break;
case READ:
if(onRead != null)
onRead(re);
else
{
trace("");
trace("Función 'onRead' no declarada");
}
break;
case READALL:
if(onReadAll != null)
onReadAll(re);
else
{
trace("");
trace("Función 'onReadAll' no declarada");
}
break;
case SESSID:
if(onSessid != null)
onSessid(re);
else
{
trace("");
trace("Función 'onSessid' no declarada");
}
break;
case ERASE:
if(onErase != null)
onErase(re);
else
{
trace("");
trace("Función 'onErase' no declarada");
}
break;
}
}
private function _onWrite(re:ResultEvent):Void
{
callBack(WRITE,re);
}
private function _onRead(re:ResultEvent):Void
{
callBack(READ,re);
}
private function _onReadAll(re:ResultEvent):Void
{
callBack(READALL,re);
}
private function _onSessid(re:ResultEvent):Void
{
callBack(SESSID,re);
}
private function _onErase(re:ResultEvent):Void
{
callBack(ERASE,re);
}
private function _onAmfError( err:FaultEvent ):Void
{
NetDebug.trace({level:"None", message:"Error: " + err.fault.faultstring });
}
}
y esto es lo que me aparece en el trace a la hora de probar la aplicación:
Código :
AMF --> 1/6 21:27:17 [INFO] logger: Creating Service for sessions
AMF --> 1/6 21:27:17 [INFO] logger: Creating gateway connection for http://localhost/project/amfphp/gateway.php
AMF --> 1/6 21:27:17 [INFO] logger: Successfully created Service
AMF --> 1/6 21:27:17 [INFO] logger: Creating Service for users
AMF --> 1/6 21:27:17 [INFO] logger: Successfully created Service
AMF --> 1/6 21:27:17 [INFO] logger: Invoking sessid on sessions
AMF --> 1/6 21:27:17 [INFO] logger: sessions.sessid() returned "41192eaf4c8787953ecea658701f6e18"
//////////////// AQUÍ LE DOY A LOGIN ////////////////////////
AMF --> 1/6 21:27:24 [INFO] logger: Invoking loGin on users
entonces ahí se queda...
Una pequeña ayudita no me vendría mal. En cuanto a setCredentials, resumidamente ¿para que se utiliza?
Saludos!