Я пытаюсь подключить приложение AIR к socket.io, он просто не работает. Это мой код:Не удается подключить приложение AIR к socket.io
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<s:layout>
<s:VerticalLayout />
</s:layout>
<fx:Script>
<![CDATA[
import com.pnwrain.flashsocket.FlashSocket;
import com.pnwrain.flashsocket.events.FlashSocketEvent;
import mx.events.FlexEvent;
protected var socket:FlashSocket;
protected function creationCompleteHandler(event:FlexEvent):void
{
trace("Connect");
socket = new FlashSocket("ws://mydomain.com:8080/socketFolder/");
socket.addEventListener(FlashSocketEvent.CONNECT, onConnect);
socket.addEventListener(FlashSocketEvent.MESSAGE, onMessage);
socket.addEventListener(FlashSocketEvent.CLOSE, onDisconnect);
socket.addEventListener(FlashSocketEvent.IO_ERROR, onIOError);
socket.addEventListener(FlashSocketEvent.SECURITY_ERROR, onSecurityError);
}
protected function onConnect(event:FlashSocketEvent):void{
trace("connect");
}
protected function onDisconnect(event:FlashSocketEvent):void{
trace("disconnect");
}
protected function onIOError(event:FlashSocketEvent):void{
trace("onIOError");
}
protected function onSecurityError(event:FlashSocketEvent):void{
trace("onSecurityError");
}
protected function onMessage(event:FlashSocketEvent):void{
trace("onMessage");
}
]]>
</fx:Script>
</s:WindowedApplication>
Как вы можете видеть, я использую FlashSocket.
конфигурация Мой сервер:
io.configure(function(){
io.enable('browser client minification'); // send minified client
io.enable('browser client etag'); // apply etag caching logic based on version number
io.enable('browser client gzip'); // gzip the file
io.disable('destroy upgrade');
io.set('log level', 3);
io.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
});
я получал "уничтожение non-socket.io обновление" в консоли сервера, поэтому я добавил io.disable ('уничтожить обновление');. Я больше не получаю сообщение, но не помог.
В приложении AIR я не получаю никаких ошибок, вызывается любой из прослушивателей событий.
Сервер socket.io работает правильно, так как у меня есть клиент HTML, подключенный к нему. Сервер - это удаленный сервер, а не локальный.
Должен ли я устанавливать любую политику безопасности? Я запускаю приложение AIR из Flash Builder.
Любые идеи будут оценены.
Я только что обновил до socket.io 0.8.5, такой же результат. есть идеи? – oscarm
Я заметил, что в Socket.io 0.8.3 порт по умолчанию был изменен с 843 на 10843. – oscarm