J'essaye de faire un client de socket dans FlashAS3 pour mon serveur de socket écrit dans nodejs. J'ai aussi un client d'application mobile qui communique avec lui. Dans AS3 j'ai écrit un code de test qui fonctionne parfaitement lorsque je publie et exécute un fichier Windows EXE mais lors de la publication sur SWF et l'ouverture dans les navigateurs, il ne se connecte pas au serveur. Même tout ce que "les importations" n'aident pas. Code:AS3 XMLSocket fonctionne dans WIN EXE mais pas sur SWF
import flash.system.Security;
import flash.net.XMLSocket;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.events.DataEvent;
var xmlSocket:XMLSocket = new XMLSocket();
xmlSocket.connect("myserverhost", 88);
xmlSocket.addEventListener(DataEvent.DATA, onIncomingData);
send_btn.addEventListener(MouseEvent.CLICK, clickHandler);
disconnect_btn.addEventListener(MouseEvent.CLICK, disconnectHandler);
function clickHandler(event:MouseEvent):void
{
xmlSocket.send(input_txt.text);
input_txt.text = "";
}
function disconnectHandler(event:MouseEvent):void
{
xmlSocket.close();
send_btn.enabled = false;
}
function onIncomingData(event:DataEvent):void
{
var items:Object = JSON.decode(event.data);
for (var index in items) {
trace(index+" => "+items[index]);
}
if(items['hello']){
output_txt.text += items['hello'] + "\n";
}
else if(items['description']){
output_txt.text += items['description'] + "\n";
} else {
output_txt.text += event.data + "\n";
}
output_txt.verticalScrollPosition = output_txt.maxVerticalScrollPosition;
}
J'ai été googler et trouvé conseille de faire un fichier crossdomain.xml mais il ne fonctionne pas, ce qu'il est:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>
Le problème était que j'ai ouvert le swf \ html dans le navigateur dans le domaine localhost comme file: // localhost/C:/Users/ Quand je Transféré au serveur - il est arrêté à défaut mais il ne peut pas recevoir des messages à partir du serveur – user1060667