1

connect() が失敗したときに localconnection を close() しようとしています。しかし、接続を閉じているときに、「オブジェクトが接続されていないため、#2083 クローズに失敗しました」というメッセージが表示されました。

前もって感謝します。

try{
    connServer2Client.connect("_" + clientConnectionName);
}catch (error:ArgumentError) {
     trace("in catch connection established");
    connServer2Client.close();
    connServer2Client.connect("_" + clientConnectionName);
}
4

1 に答える 1

0

アドビはこれを本当に台無しにしました。

チェックするパラメーターまたは呼び出す関数が必要です。これにより、ステータスが通知されます。IE

connected = true or false

しかし、ありません。したがって、最善の解決策は複数の try catch 関数です。これはひどいものです。これが私が使用するクラスです。私は html/javascript で flex を使用しているので、これは javascript ですが、as3 でも同様のことができます。

function Connecter(){
  this.LocalConnection = new LocalConnection();
  this.LocalConnection.allowDomain("*");
  this.connectionAttempts = 0;
  this.localConnectionError = false;
  this.connected = false;
}

Connecter.prototype.openConnection = function(channel){
  try{
    this.LocalConnection.connect(channel); //will throw error if connection is opened
  } catch(e){
    this.closeConnection();
    this.LocalConnection.connect(channel); //try to reconnect again
  }
  this.connected = true;
};

Connecter.prototype.closeConnection = function(channel){
  try{
    this.LocalConnection.close(); //will throw error if connection is closed
  } catch(e){ /* Already closed */ }
  this.connected = false;
};

Connecter.prototype.connect = function(channel) {
  var self = this;
  while (self.connectionAttempts < 3 && !self.connected ) {
    self.connectionAttempts += 1;
    self.openConnection(channel);
  }
};

したがって、接続されていると、LocalConnection があるかどうかがわかります。

于 2012-08-09T23:39:35.200 に答える