2013-02-05 83 views
1

我正嘗試使用XIFF library連接到我的本地XMPP服務器,但我無法這樣做。Adob​​e Flex:無法使用XIFF庫連接到XMPP服務器

我在我的本地主機上安裝了eJabberd,並通過XMPP客戶端(Pandion)連接到它,這工作正常......我能夠連接到本地jabber服務器。

接下來,我嘗試使用下面的代碼連接到XMPP服務器:

LoginView.mxml

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" title="Login"> 
    <s:layout> 
     <s:FormLayout/> 
    </s:layout> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <fx:Script source="connection/Connection.as"/> 
    <s:Spacer/> 
    <s:Label text="Username"/> 
    <s:TextInput id="txtUsername" width="200"/> 
    <s:Spacer/> 
    <s:Label text="Password"/> 
    <s:TextInput id="txtPassword" width="200" displayAsPassword="true"/> 
    <s:Button id="btnLogin" label="Login" click="login(txtUsername.text, txtPassword.text)" mouseUp="navigator.pushView(HomeView)"/> 
</s:View> 

Connection.as:

import org.igniterealtime.xiff.conference.Room; 
import org.igniterealtime.xiff.core.UnescapedJID; 
import org.igniterealtime.xiff.core.XMPPConnection; 
import org.igniterealtime.xiff.events.LoginEvent; 

private var con:XMPPConnection; 
private var room:Room; 

private function login (username:String, password:String): void { 
    con = new XMPPConnection(); 
    con.username = username + "@mydomain"; 
    con.password = password; 
    con.server = "localhost"; 
    con.port = 5222; 
    con.connect (0); 
} 

但是我無法連接到使用上面的ActionScript代碼連接到XMPP服務器。只是想知道我哪裏可能會出錯。

任何幫助,將不勝感激。

謝謝!

回答

0

看起來像跨域政策問題。嘗試:

  1. Locate your policy log file第一

  2. 啓動您的SWF

  3. 檢查策略文件內容

做同樣的事情正在打開瀏覽器的網絡日誌,並檢查是否的另一種方式Flash正試圖加載像http://localhost/crossdomain.xml這樣的文件。

對於這個問題,有兩種通用的解決方案:

爲了調試目的adding SWF file location do local-trusted sandbox應該解決所有問題。

相關問題