I am running a socket server using PHP. The socket server runs fine because I can connect to it using PHP.Now, I have a flash application that is trying to connect to it:
When I run the application locally, it works! However, when I upload it to my server I get a sandbox security error (#2048). The flash app is actually hosted on the same server as the socket server, and there is cross domain policy file in place.
I am trying to connect to a public resource using actionscript. I already have a PHP site set up to do this, but wanted to move it to Flash. From what I have read, Flash absolutely requires the destination location to have a crossdomain.xml file referencing the remote SWF. This seems absolutely ridiculous.
If I am correct, this means that public resources such as RSS feeds cannot be accessed using Flash? Is there any possible way to access a public file (like RSS) remotely from a SWF without having access to the destination server's crossdomain.xml file? I've tried using Socket and URLRequest, both giving the same "sandbox violation" error.
I want to implement flex web application using Socket connection. But I am getting sand box violation error for remote sites in sample application . It is working fine in local.
Error:
Security Sandbox Violation Error: Request for resource at xmlsocket://170.21.8.0:4000 by requestor from http://localhost/Sample/DotNetSocketConnect.swf is denied due to lack of policy file permissions.
I am using a Socket (not xmlSocket) connection between flex applications and the server pushing messages.Now, when I connect from the local machine to the server everything is working file and running, connection is succesful and I get data back and forth.When I upload the application (flex) to the server and run it from there, I get a security sandBox violation message.Note:1. I do have a crossdomain file with * wildcard both on port and on domain.2. I created a Securiy.allowDomain("*") as well.Another thing.I also created another listener on that same server, listening to connections for port 843 (default) and this service just waited for a connection send policy file to the client and that's it.
I get following error: Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: [URL] cannot load data from 192.168.3.5:4854. at TicTacToe_fla::MainTimeline/TicTacToe_fla::frame1() ". I tryed to solve this problem about 3 hours, but I failed I have the file crossdomain.xml in the same folder like my .swf file on the server with this content:
I get a Flex 3 sandbox error #2048 after connecting to a Socket on a Java (1.5) server. The server code is all mine, i.e. not running under Apache. Flash Player 10.0 r32.The sequence is as follows...
1 Java server starts, listens on port 843 for policy file request and on port 45455 for my other requests.
2 Flex client served by Apache (although I get the same result if I run it from the file system), socket connection made on host:45455.
3 Flash Player requests policy file from port 843. This is the standard behaviour with the new security settings looking for a master file. It happens regardless of whether a different policy file has been specified.
4 I serve the following XML from Java through port 843:
5 The player writes the following into the debug policy log...
OK: Root-level SWF loaded: http://localhost/bst/BasicSocketTest.swf OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at xmlsocket://192.168.2.3:45455 by requestor from http://localhost/bst/BasicSocketTest.swf OK: Policy file accepted: xmlsocket://192.168.2.3:843 OK: Request for resource at xmlsocket://192.168.2.3:45455 by requestor from http://localhost/bst/BasicSocketTest.swf is permitted due to policy file at xmlsocket://192.168.2.3:843
6 I send a text message from the client to the server on port 45455 using writeUTFBytes() and flush() (this is my own home-baked message protocol, and is correctly processed at each end)
REG/REGISTER;simon;Si
7 Java server thread listening on port 45455 responds with
REG:0/REGISTER:SUCCESS;simon;Si
8 The Flex client receives a ProgressEvent and the event listener I bound to the socket gets called. I process the message (write it to a text box on the screen)
9 The Flash player throws a 2048 sandbox error and the socket is disconnected! This is after the message is received and processed successfully. In fact it is about 12 seconds after. Nothing else works through the socket.
I have tried explicitly loading a policy file with a call to Security.loadPolicyFile() in the Flex client, but the reality of the new player security is that it is basically ignored. The steps are that the policy request will not get sent until a socket i/o operation occurs. At that point the player always goes to port 843 first looking for a master policy file. If it finds one, and it is permissive, it goes no further.
I have tried a variety of alternative ways of terminating the policy file and policy file contents, including deliberate errors just to see if the Flash Player is awake.I can see no reason why I would have a 2048 being thrown. I accurately serve a socket policy file on the designated master security port, which the player itself logs as correct. The socket then successfully sends and receives a message from the server the contents of which are available to my code.
P.S. Please don't tell me to use BlazeDS or LCDS or Granite, or something else as a server, I'm looking for a solution to this problem, not a redesign. And please don't ask me to use an XMLSocket instead - I tried that and get exactly the same result. I have chosen my architecture carefully and deliberately and I want a binary socket.
EDIT :In response to James Ward's request in his comment, here is the entire error message:
Error #2048: Security sandbox violation: http://localhost/bst/BasicSocketTest.swf cannot load data from 192.168.2.3:45455.
I have a stripped down test client which has a handler for each socket event and outputs a message to the screen. This is what it shows:
The close event is fired immediately after successfully receiving a response from the server, however the Error #2048 does not appear until about 20 seconds later. If I try and send a further message after close, but before the error, the Flash Player throws an invalid socket exception.
Before I start I should state I have read it all, I was following this, this and this (and more...) and still I cannot connect to our running server via Socket over the internet.
Here is what I try to in AS3:
[Code]...
We can see from the log output of the server that this is really sent to the connecting socket. A null byte is of course sent after the xml data. And after that, the server closes the connection. However, it seems that Flash somehow does not like it, as "Error #2048" still appears after ~3 seconds.
I'm having trouble with an AS3 AMF RemoteObject request that is hosted on App Engine. I have a crossdomain.xml file in the root of the domain, and also one at the remoting endpoint.Here are the contents of the root crossdomain.xml:
Loading the swf file and testing it on my machine works just fine... I think that may have something to do with me having the debugger version of Flash Player. When I push it up to App Engine to make it public, other clients access it and get a Client.Error.MessageSend Channel.Security.Error error Error #2048 url: http:[url].......I am using Flex 4 beta, and the App Engine Python runtime. I have tried full wildcard in the crossdomain, and even accessing the data endpoint at a relative URL so as to avoid this error.
well, yes, you can access using the default port 80, as it should be.(but probably my server will be down when u try to access it)so here is what i do: i run my Java server application.there i open 1 socket in port 19809.(i already tried with port 843 too) then, i run my Flex application: [URL]also i tried to run it in ROOT folder..the XMLSocket class is instanced like this:
xmlsock = new XMLSocket(); // add all listeners Security.loadPolicyFile("http://alucardeck.mine.nu/crossdomain.xml"); // also tried "xmlsocket://alucardeck.m....
[code]....
i also notice when i start my Java Server application with 2 sockets listening ports: 843 and 19809, i notice Flex first try to connect to 843 and then 19809, and in both sockets i reply with that String from before.
So i am playing around with some exmaples that come with the tuio as3 library and i am getting an error on launch that i have never encountered before and don't know how to fix.it compiles with no errors however on launch i get this output:ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2031: Socket Error. URL: 127.0.0.1"]
i'm trying to connect my flash application to my nodejs server running socket.io. To connect via web-browser is no problem. Now the problem, when the socket-server isn't running i get an IOError in Flash what seams alright. Now when i start the server and try to connect again, i don't get an error, but the socket-server doesn't receive a connection either?!
I'm creating a client-server game. My client is a flex based game, and my server is erlang server. At the beginning, when I test directly my flex client in flash player, I can establish a connection easily to my erlang server through socket connection. And both can exchange data with no problem. The problem rise when I deploy my flex app at Apache http server, and running it using a browser by calling [URL] my flex socket sends message requesting for a crossdomain policy to my erlang server. So I create an xml message that represent a crossdomain policy, and send it back to my flex app as a response for that request.
Yet still I can't establish any permanent socket connection between my flex client and my erlang server. I know this because I add listener on my flex socket that will modify its internal state to CONNECTED, if a connection between client-server has established.
I have created a crosdomain policy file, I have added code to my flex app, and I still get security sandbox violation...have I done something wrong? Here are my errors and file snippets:
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://mysite.com/folder1/folder2/media/swf_demo.swf cannot load data from http://mysite.com/folder1/folder2/media/locXML.xml.
swf_demo.swf is my flex application
The following lines have been added to my flex application:
I'v been looking and below is my code. import flash.net.Socket; var mySocket = new Socket mySocket.connect("127.0.0.1", 5331) var sym:SimpleButton; sym.addEventListener(MouseEvent.MOUSE_DOWN, symbtn); function symbtn(event:MouseEvent):void { mySocket.writeUTFBytes(1); }
I have an application that connects to a binary socket server running on port 2234. I use the python policy file server, which I downloaded from [URL], which runs on port 843. If the client app is trying to connect to a socket I can see that the server is receivng the request for a policy file and that it sends it to the client. However, in the client, I get a security sandbox error. How is this possible? And is it possible to check whether the client really received the policy file? BTW, here is my policy file:
<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>
I get a vague "Socket timeout." error on occasion when I am loading my site. I make various HTTP requests for PHP data and also am using a Loader() class instance. Can anyone shed some light on where this error might be coming from? I wish there was more of an indication of where the error stemmed from...
Here is my code that I am using.There are multiple problems going on, but the most important is that catch{} catches an error on first load. I have a fade in function that only works if the loader is fully loaded and I know that all of my URL links work, so it can't be that.
public function loadImage(url:String):void { this._imageURL = url;[url].......
I am wondering if it is better to write basic "chat" client based servers in java because then you can have multi threaded servers where clients can connect and chat or if you can do this in Actionscript- minus the multi threading because from what I know air and or AS3 do not support threading.
I read through the method to connect to a socket server : [URL]. I wrote an AIR application to connect to the java server code, but the client cannot connect. What is missing in the code?
I have a web chat application that uses flash in the client side to open connection to the server. When the client connects to the server I want them to be in connection until the client closes the browser or stops the conversation. The problem is that sometimes there is a network problem and the socket in the client is throwing an error and than closing. What I want is that the socket in the client will not close the socket immediately after an error or a timeout, but will try for at least half minute to check if the connection is fine before throwing the error and closing.
The code in my flash object is this : package { import flash.display.Sprite; import flash.external.ExternalInterface; import flash.events.*; import flash.net.XMLSocket; public class jsxmlsocket extends Sprite{ [Code] .....
Got a flash application that connects to a server. When I run the flash application from within Adobe Flash it connects no problem. When I try to run it from IE from the web it gives an error 2048. Now the interesting thing is that the server I connect to from flash is showing the flash application connects briefly then disconnects. I have a crossdomain.xml file I have created but haven't figured out if I am missing something.[code]...
I am using loadVars to load an url from a txt file and then passing that to another loadVars.When I test the movie it gives me a security sandbox error,but if I type in the url by hand it works just fine.
PHP Code:
var url:String=""; var myData:LoadVars = new LoadVars(); myData.onLoad=function(){
[code]....
This gives a security sandBox error but if I remove url and type the url in directly it works fine.
I've been creating a fla that reads an XML file, that tells which swf to import.Finally got that all working and put it on the local network at work, only to get a sanbox error. It seems for some people the main fla will work for people, but the xml isn't loading the content. I've read some about having to include a domain in the xml, giving permission to domains named. The problem I'm having trouble with is what do I do for a local network? And were going to be sending it to other people who will be running it on their local computers or their office networks.