AIR 응용 프로그램을 socket.io에 연결하려고하는데 작동하지 않습니다. 이 내 코드입니다 : 당신은 내가 FlashSocket를 사용하고 볼 수 있듯이Cant가 socket.io에 AIR 응용 프로그램을 연결합니다.
<?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>
.
내 서버 구성은 다음과 같습니다
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 응용 프로그램에서 모든 오류가 발생하지 않으며 이벤트 리스너가 호출되었습니다.
HTML 클라이언트가 연결되어있어 socket.io 서버가 올바르게 실행되고 있습니다. 서버가 로컬 서버가 아닌 원격 서버입니다.
보안 정책을 설정해야합니까? Flash Builder에서 AIR 응용 프로그램을 실행하고 있습니다.
어떤 아이디어라도 감사하겠습니다.
방금 socket.io 0.8.5로 업데이트했습니다. 어떤 아이디어? – oscarm
Socket.io 0.8.3에서 기본 포트가 843에서 10843으로 변경되었습니다. – oscarm