Hello,

I have a strange behaviour... I enabled the services modules, amf module, put amfphp 1.9 beta2 in the correct directory. When I test, all seems ok. I enable the taxonomy services (and system and node services).
When I test the taxonomy.selectNodes in the admin service pages, all is ok, service return to me some data (from two differents kind of content).

When I create a flash application (not flex, only flash) and try to get data with the nl.dpdk.services.gephyr framework, amfphp never finish the call of the same method...

I tried with some params, but no idea to find solution...

		private function _connectToDrupal():void
		{
			trace( "try to connect to drupal... 1" );
			_service = new DrupalService( this._gateway );

			_service.addEventListener(DrupalEvent.SYSTEM_CONNECT, 				this._onSystemConnect);
			_service.addEventListener(DrupalEvent.ERROR_SYSTEM_CONNECT, 		this._onSystemConnectError);

			_service.addEventListener(DrupalEvent.TAXONOMY_SELECTNODES, 		this._onSelectNodes);
			_service.addEventListener(DrupalEvent.ERROR_TAXONOMY_SELECTNODES,	this._onSelectNodesError);

   			_service.systemConnect();
			trace( "try to connect to drupal... 2" );
		}
		 
		private function _onSystemConnectError( event:DrupalEvent ):void
		{
			trace("on system connect error : " + event.getError() );
		}
		 
		private function _onSystemConnect( event:DrupalEvent ):void
		{
			trace( "try to connect to drupal... 3" );
			_service.taxonomySelectNodes( [1] );
		}
		
		private function _onSelectNodesError( event:DrupalEvent ):void
		{
			trace( "on select nodes error : " + event.getError() );
		}
		
		private function _onSelectNodes( event:DrupalEvent ):void
		{
			trace( "on Select Nodes !!" );
			var o:Object = event.getData();
		}
		

The systemConnect method is ok, a node.get is already ok, but the taxonomy.selectNodes don't return anything... If I put no tids (an empty array) amf send to me a return, but since I add a tid in the array nothing append after the call.

The two calls in Charles :

code without any tid :

<?php
// call
AMF Message	Message	
	Header		
	Body		
		[0]	Body Part	
			Target	String	taxonomy.selectNodes
			Response	String	/1
			Content	Array	
				[0]	Array	
				[1]	Array	
				[2]	String
				[3]	String

//response :

AMF Message	Message	
	Header		
		[0]	Header Part	
			Name	String	AppendToGatewayUrl
			Must Understand	Boolean	false
			Content	String	?SESS18dbcf0d321fb279bd51ea45b7d24b2b=87ikcam4psa7mibgsph62v6if4
	Body		
		[0]	Body Part	
			Target	String	/1/onResult
			Response	String	null
			Content	Null	
?>

code with tid :

<?php
// call
AMF Message	Message	
	Header		
	Body		
		[0]	Body Part	
			Target	String	taxonomy.selectNodes
			Response	String	/1
			Content	Array	
				[0]	Array	
					[0]	Integer	1
				[1]	Array	
				[2]	String	
				[3]	String	

// response 
taxonomy.selectNodes	Method	AMF data is incomplete (0 bytes of 0 bytes). Please check the recording limits in the Recording Settings.
	Parameters	Array	
		[0]	Array	
			[0]	Integer	1
		[1]	Array	
		[2]	String	
		[3]	String	
	Result	Null	
?>

It's obvious for me, and I don't know if it's the DrupalService framework in cause or the amfphp service... If anyone can help me I'm listening for any suggestion.

Thanks in advance.

Comments

titouille’s picture

Ok, it seems that because retrieved nodes doesn't have same structure and type. If I get only some informations ie "nid" and "language" and there is only one kind of content all is ok.

Sorry for the convenience.

rolf vreijdenberger’s picture

sounds like an amfphp bug which is not serializing the result to amf format correctly.