2012-01-31 3 views
1

WebSocketプロトコルを使用してサーバーに接続しようとする単純なFlexアプリケーションを実装しました。 Flash Builder 4.6デバッガでアプリケーションを実行すると、すべて正常に動作します。だから、私は自分のサーバーにアプリケーションをインストールした後、しばらくしてError#2048を取得します。 #2048はセキュリティに関するエラーと思われます。Flex:WebSocketに接続するときのエラー#2048

サーバは、こののcrossdomain.xmlを提供しています。

<?xml version="1.0" encoding="UTF-8" ?> 
    <cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd"> 
    <allow-access-from domain="*" to-ports="*" /> 
    <site-control permitted-cross-domain-policies="master-only" /> 
</cross-domain-policy> 

編集更新

それは私がそのWebサーバーのログに見ることができます

Security.loadPolicyFile('http://myserver:8081/crossdomain.xml'); 

を呼び出すことによって提供されますがクライアントはそれをロードします。

FlexのWebSocket実装としてAS3WebSocketを使用しています。

これは私がのWebSocketオブジェクトを設定する方法です:ブラウザは

http://myserver:8081 

でサーバーに接続

websocket = new WebSocket(url, "*", 'dummy', 5000); 
// adding several event handler ... 
websocket.connect(); 

URLパラメータは

ws://myserver:8081/data 

なぜを保持していますそれは私のseではなく、Flash Builderでローカルに動作しますあなたは?私は何が欠けていますか?

+0

どのポートがクロスドメインになっていますか。 –

+0

Flexアプリケーションで実行される最初の行は、_Security.loadPolicyFile( 'httpaddressofmyserver:8081/crossdomain.xml'); _です。それはアプリからロードされています。それは私のWebサーバーのログで見ることができます。 –

+0

ここに私の他のポストを参照してくださいhttp://stackoverflow.com/questions/7634266/open-swf-file-than-works-with-socket/7637329#7637329 –

答えて

0

私はこれを働かせました。私は何らかの理由で、TCP経由でポリシーファイルを提供するポート843でソケットポリシー用に実行する特別なpolicy serverが必要であるという情報を見逃しました。

0
<allow-access-from domain="*" to-ports="*" /> 

なし」ビット「=許可クロスドメインポリシー」を省く。

今のことを試してみてください。 すべての作品とき、それをより安全に。

+0

crossdomain.xmlを変更しましたでも私はまだ#2048のエラーが出ます。ファイルをロードします。それは確かだ。セキュリティエラーの原因を正確に突き止める方法はありますか? –

0

をファイアウォールのセキュリティを確認してください[ポートの内部および外部アクセス]これはあなたの問題の原因のいずれかになります

リンクの下に確認してください: - 。 http://flexhappycoding.blogspot.in

+0

tippに感謝しますが、ポートは開いています。私はブラウザからHTTP経由でポートに接続できます。ソケット接続は接続できず、Flex/Flashに固有のセキュリティ問題のために試していないようです。 –

関連する問題