• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

Air 2.0.3.13070 and XMLSockets

New Here ,
Aug 20, 2010 Aug 20, 2010

Copy link to clipboard

Copied

I have a few applications that use a single or multiple XML sockets, but after users are updating to 2.0.3.13070 they experience sporadic disconnects from the servers.

Is there any known issue that could be causing this? Or has the XMLSocket changed in some way?

Cheers

TOPICS
Performance issues

Views

1.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 20, 2010 Aug 20, 2010

Copy link to clipboard

Copied

Hi,

Thanks for bringing this issue to our attention.  I don't know of any changes to XMLSockets, but I'd like to help investigate.  Do you have any sample code or application that we can test with to reproduce the problem?  Have you found this occurs cross platform?  And did this occur with the original AIR 2.0.2 release?

If you'd like to privately send code or an application, please feel free to email me at ccampbel@adobe.com.  Please remove the attachment's file extension so it can get past our email filter.

Thanks,

Chris

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 31, 2010 Aug 31, 2010

Copy link to clipboard

Copied

Is there any update if this truly was a bug in Air 2.0.3.13070?

I am running into the same issue with my application. With mine the error does not occur with Air 2.0.2.12610.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 31, 2010 Aug 31, 2010

Copy link to clipboard

Copied

Hi,

I have not been able to reproduce the XMLSockets issue yet.  I did confirm a completely separate UI related issue that Tom reported, but reproducing the socket issue has been problematic (due to a couple of external factors.)  It's still high on my todo priority list and it would be very helpful to have additional applications to test against.

Would it be possible to get access to your application (or sample app) that reproduces the issue?  Please feel free to email me at ccampbel@adobe.com.

Thanks,

Chris

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 31, 2010 Aug 31, 2010

Copy link to clipboard

Copied

I wish I could send a sample application that reproduces the issue but I have not been able to reproduce it outside my application which I can not send. If I discover anything to help resolve this issue I will let you know.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 31, 2010 Aug 31, 2010

Copy link to clipboard

Copied

Here's the code I've been using to try and reproduce the disconnect.  I'm running on Windows 7, the server is using ActivePython 2.6 and my AIR apps have been built with Flex 4.1 / AIR 2 and running on AIR 2.0.3 runtime.  No luck so far...

chat.py

# import socket and select module import socket, select # define checkData function that is the core of our Socket comunication def checkData(): #create an infinitive loop to check data from an AIR client to another one      while True:      # use select module to allow an application to wait for input from multiple sockets at a time           inputready,outputready,exceptready = select.select(input,[],[])           for s in inputready:                      if s == theSock:                           # add a client to the socket connection                           client, address = theSock.accept()                           input.append(client)                      else:                     try:                                                    # comunication between client and server: manage traffic data                                     data = s.recv(1024)                                     # in tempConn we put all client without server connection                                     tempConn = input[1:len(input)]                                     if data:                                          for i in tempConn:                                               # send to all client any messages                                               i.send(str(i.getsockname()[0]) + ": " + data)                                     else:                               client.close()                               input.remove(s)                     except socket.error, e:                          # Remove                          inputs.remove(s) #define socket connection: address, port and type of socket connection theAddress = ('localhost',1024) theSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) theSock.bind(theAddress) theSock.listen(5) input = [theSock] #after established XMLSocket connection, manage messages from client checkData()

and XMLSocketTest.mxml

<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"                             xmlns:s="library://ns.adobe.com/flex/spark"                             xmlns:mx="library://ns.adobe.com/flex/mx"                             creationComplete="init()"                             showStatusBar="false">            <fx:Declarations>           <!-- Place non-visual elements (e.g., services, value objects) here -->      </fx:Declarations>            <fx:Script>           <![CDATA[                import flash.utils.getTimer;                private var srv:XMLSocket;                private var ping:Timer = null;                private var startTime:Number;                                private function init():void                {                     startTime = getTimer();                                          srv = new XMLSocket();                                          srv.addEventListener(Event.CLOSE, closeHandler);                     srv.addEventListener(Event.CONNECT, connectHandler);                     srv.addEventListener(DataEvent.DATA, dataHandler);                     srv.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);                     srv.addEventListener(ProgressEvent.PROGRESS, progressHandler);                     srv.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);                                          srv.connect("localhost", 1024);                }                                private function progressHandler(e:Event):void                {                     chatOutput.text += "ProgressEvent.PROGRESS \n";                }                                private function securityErrorHandler(e:Event):void                {                     chatOutput.text += "SecurityErrorEvent.SECURITY_ERROR \n";                     exitChat();                }                                private function closeHandler(e:Event):void                {                     chatOutput.text += "Event.CLOSE \n";                                          exitChat();                }                                private function exitChat():void                {                     var endTime:Number = getTimer();                     var totalSeconds:Number = (endTime - startTime) / 1000;                     chatOutput.text += "Total Time: " + totalSeconds + " seconds \n";                                          if (ping)                          ping.stop();                }                private function connectHandler(e:Event):void                {                     chatOutput.text += "Event.CONNECT \n";                                          // Start the ping timer                     ping = new Timer(5000);                     ping.addEventListener("timer", pingHandler);                     ping.start();                }                                public function pingHandler(event:TimerEvent):void                {                     srv.send("pong");                }                                private function ioErrorHandler(e:IOErrorEvent):void                {                     chatOutput.text += e.text + "\n";                     exitChat();                }                                private function dataHandler(e:DataEvent):void                {                     chatOutput.text += e.data + "\n";                }                                private function sendMessage():void                {                          srv.send(chatInput.text);                     chatInput.text = "";                }           ]]>      </fx:Script>            <mx:VBox width="100%" height="100%">                      <mx:TextArea id="chatOutput" editable="false" width="100%" height="100%" valueCommit="chatOutput.verticalScrollPosition=chatOutput.maxVerticalScrollPosition" />           <mx:HBox width="100%">                <mx:TextInput id="chatInput" width="100%" enter="sendMessage()"/>                <mx:Button label="Send" click="sendMessage()"/>           </mx:HBox>                 </mx:VBox>       </s:WindowedApplication>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Sep 02, 2010 Sep 02, 2010

Copy link to clipboard

Copied

LATEST

I've run my test for 48 hours so far and I haven't seen any disconnects.  For those that have seen this occur, does it happen on all OS's?  Am I missing something critical in my test code posted above?

Thanks,

Chris

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines