Skip to content

RemoteObject PHPSESSID issue SDK0.9.7##1086 #779

@cristallium

Description

@cristallium

Hi,

It seem there is a bug with mx:RemoteObject and PHPSESSID.
When using it for first time, it should memorise the PHPSESSID sended by remote host. Then using it another time, it should send this PHPSESSID in the request header.

I took exemple in
examples\mxroyale\RemoteObjectAMFTest

I modify it to call my test login service, and clic on sendLogin button.
Here is network trace :

On first packet, then Request has no PHPSESSID because it's first use

image

On second packet (and others if clic again on sendLogin button) there is no PHPSESSID in Request header.
So the server send each time another new PHPSESSID thinking it's a new client

image

Now here is same service with Flex sdk4.6.0

image

Here is the code used :

<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:j="library://ns.apache.org/royale/jewel"
               xmlns:js="library://ns.apache.org/royale/basic"
               xmlns:mx="library://ns.apache.org/royale/mx"
               >

    <fx:Style source="../../main/resources/styles.css"/>

    <fx:Script>
		<![CDATA[
            import mx.rpc.AsyncToken;
            import mx.rpc.Responder;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            import org.apache.royale.events.Event;


			private function onFault(evt:FaultEvent):void
			{
                trace("[onFault]", evt);
			}

            // Test AsyncToken - Responder
            private var token:AsyncToken;
            private var responder:Responder;
            private function sendEcho(evt:MouseEvent):void
			{
                var o:Object = new Object();
				o.login = "demo";
				o.password = "demo";

                responder = new Responder(onEchoResult, onFault);
                token = serviceResp.siteLogin(o);
                token.addResponder(responder);
                trace(token);
            }

            private function onEchoResult(event:ResultEvent):void
			{
                trace("[onEchoResult]", event);
                result_txt.text = event.result as String;
            }

 
		]]>
	</fx:Script>

    <fx:Declarations>
        <mx:RemoteObject id="serviceResp" fault="onFault(event)"
                         endpoint="http://gateway.XXXXXX.com/gateway.php"
                         source="aadmin"
                         destination="amfphp"/>
    </fx:Declarations>

    <j:beads>
        <js:ClassAliasBead />
    </j:beads>

    <j:valuesImpl>
		<js:SimpleCSSValuesImpl />
	</j:valuesImpl>

    <j:initialView>
	    <j:ApplicationResponsiveView>
        <j:VGroup width="400">
            <j:Button text="Send LOGIN" click="sendEcho(event)"/>
            <j:Label id="result_txt"/>
        </j:VGroup>
        </j:ApplicationResponsiveView>
    </j:initialView>
</j:Application>

Remote server is using AMFPHP (I can give remote URL to test if necessary in private)

Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions