Flex :: Set TCP_NODELAY To Socket.flush(), NetConnection.call() Or SendToURL()?
Jun 25, 2009
I'm writing a real-time app using a Flex/Flash client and my own server running on Linux.
I'd like to be able to send data from the Flex client in real time (in response to user actions). I've tried the following methods:
flash.net.NetConnection.call()
flash.net.sendToURL()
flash.net.Socket.write() followed by flash.net.Socket.flush()
[Code].....
The second nc.call() above won't send data to the server until the ACK for the first call has been recieved. I'd like to be able to send data immediately without waiting for that ACK.
If the round-trip time to the server is long (e.g. 300ms) I can only send data to the server 3 times a second. Ideally I'd like to be able to send data up to 30 times per second, but this is only possible with a RTT of around 30ms at the moment.
It doesn't matter if the server itself gets the data 300ms late - I realise I can't beat the speed of light.
Is there any way to get the Flash Player to send data without waiting for an ACK? In other environments this is done by setting the TCP_NODELAY flag on the socket but it seems I don't have that level of control in Flash/Flex.
Update: I think I may have stumbled on a workaround for this. I think the Flash Player tries to get the host browser to give it a separate TCP connection for each NetConnection object, subject to the connection limit for each browser, e.g. 2 for IE. The connection limit can be got around by using sub-domains (haven't tried this yet) so hopefully it should be possible to get closer to real-time behaviour by using a pool of NetConnections.
View 2 Replies
Similar Posts:
Feb 22, 2011
How to understand binary data transferring between flash client and server? How do rtmp-servers work? How is video transferring between server and client? What's the difference between using Socket and NetConnection? Is rtmp-server just a socket server supporting amf serialization? I'll be very happy, if someone explains me these aspects.
View 1 Replies
Apr 24, 2010
I am trying to learn the new services method in flex 4. but i cant get it work. A test oparation near the service in flash builder 4 works. But when i run the code i get NetConnection.Call.Failed: HTTP: Failed.
CODE:
PHP
<?php
class AuthService {
public function login($username, $password) {[code].......
View 1 Replies
Nov 11, 2010
I am Using Flex as my client and java as my server. Using Weborb in remote host. At times I recieve this error.
faultCode:Client.Error.MessageSend
faultString:'Send failed'
faultDetail:'Channel.Connect.Failed error NetConnection.Call.BadVersion: :
[code].....
View 2 Replies
Jun 16, 2010
I need to override the call method from NetConnection class, the signature of the method is:
[Code]...
View 1 Replies
Sep 27, 2009
I'm trying to get the AS3 Flash remoting example found here: [URL]. and I keep getting this error: Code: Select allError #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion at amfphp1_fla::MainTimeline/frame1() Here's the code I'm trying:
[Code]....
View 1 Replies
Mar 11, 2011
I have a Flex and Java application and i am using BlazeDS between flex and java. Generally my application works fine. I observed when ever i try fetch data little faster(not giving gap between two fetch commands) then i am getting the error "Server error :faultCode:Channel.Call.Failed faultString:'error' faultDetail:'NetConnection.Call.Failed: HTTP: Failed'"
I guess when ever load is increasing on BlazeDs, i am getting the error. I am calling the java service using following code
[Code]...
View 1 Replies
Jun 8, 2010
I want to pass a rest in a netconnection call, something like this:
public function requestData(service : String, ...params) : void
{
nc.call(service, params);
}
this doesn't work since the call is expecting each parameter to be separated by commas, like:
nc.call(service, params[0], params[1], params[2]);
I've read some posts about apply, but I can't find a solution for this specific case.
View 1 Replies
Jan 18, 2010
I need to communicate to the server in real-time. I can't let clients write to remote shared objects so I have to forward their requests to the server which checks if the data is valid and then writes it to a remote shared object. Should I use NetConnection.call() to forward clients' request to the server or is there something faster than that?
View 3 Replies
Dec 23, 2011
I'm recording mic audio into a byte array as a WAV file and uploading it with NetConnection.call(amf.service,responder,bytearray ); It works fine but the files are very large and take a long time to upload. Is there any way to get the upload progress? I can't find anything in AS3 docs or on the web.
View 5 Replies
Jun 29, 2011
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.
View 2 Replies
Jul 14, 2011
I am currently building a Flex application with a PHP backend. The flex application should talk to the backend using Zend_AMF.I have implemented the Zend_AMF endpoint as a controller, so it is accessible via http://localhost/myapp/amf.I am trying to test the service using a service browser called ZamfBrowser.When connecting, I get this error:
There was an error loading the server's info. Error: (mx.rpc.events::FaultEvent)#0
bubbles = false
cancelable = true
[code].....
View 3 Replies
Apr 22, 2010
I cant flush the shared object in my project. What can I do for that problem?
View 4 Replies
May 18, 2011
Basically, Im learning how the socket class works in AS3, seems pretty simple, but I dont know what port to assign in the second connect() parameter, let say I wanna load a image from the web, what should I have to do to figure what port is the right one?
View 1 Replies
Nov 4, 2010
I want to use XMLRPC mechanism between my Flex app and my XMLRPC Python Server.
My server :
class ServerMockUp(SimpleXMLRPCRequestHandler):
# Services path declaration
rpc_paths = ()
myServer = SimpleXMLRPCServer(("localhost", 80),
[Code]...
View 1 Replies
Feb 13, 2010
I keep on getting this error while connecting to amfphp. Any idea what might be the problem?
Code:
private function init(e:Event = null):void
{
responder = new Responder(onResult, onFault);
connection = new NetConnection;
[Code]...
View 4 Replies
Jun 28, 2009
i have done a simple Zend_AMF + Flash AS3 setup but i ended up with:
Code: Select allError opening URL 'http://localhost/zendamf'
Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.Failed
at ZendAMF_fla::MainTimeline/frame1()
my Flash file (AS in Frame 1)
[Code]...
View 1 Replies
Jan 15, 2010
Ok, so I have a movie clip (named "shade1") that the user can drag up and down the stage. I am trying to send a command to a url when the movie clip is dropped on a specific area. The area is a movie clip that I named "closed". So far I have the mc able to move around and am using Sharedobject to remember where the user dragged it. My problem is, how do I work into the script the command to sendToURL?
Here is my code thus far:
-------------------------------------------------------------------
var mySO:SharedObject = SharedObject.getLocal("republicofcode");
shade1.x = mySO.data.my_x;
shade1.y = mySO.data.my_y;
[Code].....
View 9 Replies
Aug 18, 2011
I'm working on an interactive quiz where the user's responses will be incremented to a poll in a CMS. I have a url that automatically increments the answer choice in a poll, so I would like to use sendToURL to call the url without actually passing any data or variables. It seems to work with navigateToURL, but that opens a blank window in the browser (a complete nuisance every time you answer a quiz question).
[Code]...
View 5 Replies
Dec 28, 2011
I am building a login page for my website. Right now it is very simple, but it only seems to work in Firefox and I have no idea why. Here is where it seems to be breaking. The code sends the user's login information to login.php which will eventually check it with the database and then sends the user on to a welcome page.The user gets to the welcome page, but the information never seems to be sent to login.php when the user is using Chrome or IE.
[Code]...
View 1 Replies
Dec 17, 2009
Using flex 3, how do i set a timeout for a NetConnection?
code sample:
nc=new NetConnection();
nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);
rtmpNow="rtmpe://host/test/test1";
nc.connect(rtmpNow,fuid,gameName);
View 1 Replies
Aug 18, 2011
I'm working on an interactive quiz where the user's responses will be incremented to a poll in a CMS. I have a url that automatically increments the answer choice in a poll, so I would like to use sendToURL to call the url without actually passing any data or variables. It seems to work with navigateToURL, but that opens a blank window in the browser
Here is the navigateToURL code that increments the poll successfully, but opens the unwanted browser window
var url:String = "URL GOES HERE";
var request:URLRequest = new URLRequest(url);
try {
[Code]....
I tried replacing "navigateToURL" in the first option to sendToURL and it wasn't incrementing the poll.
View 5 Replies
Dec 4, 2009
Is it possible to use the flash.net.NetConnection object to connect to my Flash remoting enabled web application over HTTPS within Tomcat or any other servlet container?
I am using the SpiceFactory cinnamon project for amf remoting and have searched for examples of using HTTPS but see only the reference to a proxy type in the NetConnection object.
If someone could provide a reference or example that would be awesome. Or if it is not possible using the flash.net.NetConnection object are there any recommendations of how to configure HTTPS for the spicefactory cinnamon library.
View 2 Replies
Nov 17, 2010
The ActionScript 3.0 Reference says the following about flash.net.NetConnection:
The NetConnection class creates a two-way connection between a client and a server. The client can be a Flash Player or AIR application. The server can be a web server, Flash Media Server, an application server running Flash Remoting, or the Adobe Stratus service. Call NetConnection.connect() to establish the connection.
Does this mean I make a regular HTTP connection to any web server using an NetConnection object? I am a little confused about this as further down the section on the connect() method says connect(): Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way network endpoint for RTMFP peer-to-peer group communication....Pass an "http" URL to connect to an application server running Flash Remoting.. So, the application server has to have Flash Remoting?
View 1 Replies
Jun 13, 2011
Since I have to get data from other red5 application. is it possible using multiple netconnection in one mxml application?
View 1 Replies
Nov 19, 2011
When I send number (int)52 s.Send(BitConverter.GetBytes((int)872415232));, flash show me trace(socket.readInt()); 872415232 If i send 872415232, flash show 52.Why? And how it fix?
View 1 Replies
Jun 17, 2009
I'm writing a Comet-like app using Flex on the client and my own hand-written server.
I need to be able to send short bursts of data from the client at quite a high frequency (e.g. of the order of 10ms between sends).
I also need the server to push short bursts of data at a similarly high frequency.
I'm using NetConnection.call() to send the data to the server, and URLStream (with chunked encoding) to push the data from the server to the client.
What I've found is that the data isn't being sent/received as soon as it's available. For example, in IE, it seems the data is sent every 200ms rather than as soon as NetConnection.call() is called. Similarly, URLStream isn't making the data available as soon as the server is sending it.
Judging by the difference in behaviour between the browsers, it seems as though the Flash Player (version 10) is relying on the host browser to do all the comms. Can anyone confirm this? Update: This is very likely as only the host browser would know about the proxy settings that might be set.
I've tried using the Socket class and there's no problem with speed there: it works perfectly. However, I'd like to be able to use HTTP-based (port 80) connections so that my app can run in heavily fire-walled environments (I tried using a Socket over port 80, but that has its problems).
Incidentally, all development/testing has been done on an internal LAN, so bandwidth/latency is not an issue.
Update: The data being sent/received is in small packets and doesn't need to be in any particular format. For example, I might need to send a short array of Numbers, and this could either be encoded in AMF (e.g. via NetConnection.call()) or could be put into GET parameters (e.g. using sendToURL()). The main point of my question is really to see whether anyone else has experienced the same problem in calling NetConnection/URLStream frequently, and whether there is a workaround (it's also possible that the fault lies with my server code of course, rather than Flash).
View 2 Replies
Mar 20, 2012
Having this code: nc.call("test", new Responder(onCallSuccess,onCallFailed), "user1");
and
public function onTest(id:String):void {
Alert.show("test called from server");
}
Results in: ReferenceError: Error #1069: Property onTest not found on flash.net.NetConnection and there is no default value`.data is send from server application correctly but flex cannot "eat it"
View 2 Replies
Mar 19, 2011
Right now, I'm doing a lot of byte write operations, and I believe this is taking up a bunch of memory, which is then throwing an error. Is there anyway to flush some unneeded memory every now and then? It's not flushing the memory every time I run it in the fla either.
View 3 Replies
Apr 9, 2010
So I've looked all over the internet for this answer and have found nothing.I'm writing data to a shared object and need to know when it's successfully written to disk so I can take further action.Most of the time the shared object gets successfully written, but some times, for reasons unknown, it will fail.So my question is, what are the reasons a call to flush() can fail and how best can I avoid that case and ensure that its successfully written?
View 5 Replies