Push4Free Forum Index
    Register    

FAQ    Search    Memberlist    Usergroups    Profile    Log in
a workaround for Flash Player V9.0.115 or Later
 
Post new topic   Reply to topic    Push4Free Forum Index -> API - Flash / Flash Lite (ActionScript 2)
Author Message
mr.push



Joined: 17 Jan 2008
Posts: 25

PostPosted: Tue Apr 22, 2008 12:06 pm  Reply with quote

IF you are using iPush V2.5 Flash API and find your iPush application can't connect to iPush Server, you must check the version of the Flash Player in browser.

Since V9.0.115, the Flash Player had changed it's security policy (see the Adobe doc). So if your iPush Flash application runs in Flash Player V9.0.115 or later, the application may meet trouble on connecting to iPush Server.

To solve the problem, your codes need a little bit change for connecting function call, a workaround is illustrated below:

1. Find your iPush connecting function call, such as:

Code:
_root.iplink.group = "ICEPOC";
_root.iplink.product = "quote";
_root.iplink.username = "quote";
_root.iplink.password = "quote";
_root.iplink.ipuship = "www.ipush.com";
_root.iplink.ipushport = 443;

_root.iplink.ipushTCPConnect();


2. Replace with:

Code:
// detect flash player version
var playerVersion:String = System.capabilities.version;
var bkidx:Number = playerVersion.indexOf(" ");
var platform:String;
var majorVersion:String;
var minorVersion:String;
if (bkidx >= 0) {
  platform = playerVersion.substring(0, bkidx);
  var secondHalf:String = playerVersion.substring(bkidx+1, playerVersion.length);
  var vers:Array = secondHalf.split(",");
  majorVersion = vers[0];
  minorVersion = vers[2];
}

var lastServer:String;
var lastPort:Number;
var drcID:Number;

function doRealConnect(server:String, port:Number, group:String, product:String, user:String, pass:String) {
  clearInterval(drcID);
  _root.iplink.group = group;
  _root.iplink.product = product;
  _root.iplink.username = user;
  _root.iplink.password = pass;
  _root.iplink.ipuship = server;
  _root.iplink.ipushport = port;
  var ret:Number = _root.iplink.ipushTCPConnect();
  lastServer = server;
  lastPort = port;
  return ret;
}

function fpConnect(server:String, port:Number, group:String, product:String, user:String, pass:String) {
  System.security.loadPolicyFile("xmlsocket://"+server+":"+port);

  if (server == lastServer && port == lastPort) {
      doRealConnect(server, port, group, product, user, pass);
      return;
  }
   
  var sock:XMLSocket = new XMLSocket();
  if (sock.connect(server, port)) {
      sock.send("xver flash "+pjaxVersion+"\r\n");
  }
  sock.onConnect = function() {
      this.send("\r\n");
      this.close();
      delete this;
  }
   
  var waitms = 1000;
  if (majorVersion == "9" && minorVersion >= 115)
      waitms = 5000; // special for 9.0.115 or later
  drcID = setInterval(this, "doRealConnect", waitms, server, port, group, product, user, pass);
}

fpConnect("www.ipush.com", 443, "ICEPOC", "quote", "quote", "quote");


It should be fixed but need 5 seconds for connecting.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Push4Free Forum Index -> API - Flash / Flash Lite (ActionScript 2)
All times are GMT + 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

sleek template created by Andrew Charron and Web Hosting Bluebook