apache-flex 将air/flash应用程序连接到WebSocket服务器

pw136qt2  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(166)

我正在尝试将我的air应用程序连接到一个不在我的域中的WebSocket服务器。我在GitHub上发现了以下代码:https://github.com/theturtle32/AS3WebSocket,但我无法连接到服务器。
下面是我的代码:

<fx:Script>
    <![CDATA[
        import com.worlize.websocket.WebSocket;
        import com.worlize.websocket.WebSocketErrorEvent;
        import com.worlize.websocket.WebSocketEvent;

        private var websocket:WebSocket;

        private function handleCreationComplete():void 
        {
            websocket = new WebSocket("wss://echo.websocket.org", "*");

            websocket.debug = true;

            websocket.addEventListener(WebSocketEvent.CLOSED, handleWebSocketClosed);
            websocket.addEventListener(WebSocketEvent.OPEN, handleWebSocketOpen);
            websocket.addEventListener(WebSocketEvent.MESSAGE, handleWebSocketMessage);
            websocket.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
            websocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
            websocket.addEventListener(WebSocketErrorEvent.CONNECTION_FAIL, handleConnectionFail);

            websocket.connect();
        }

        private function handleIOError(event:IOErrorEvent):void 
        {
            trace("error");
        }

        private function handleSecurityError(event:SecurityErrorEvent):void 
        {
            trace("sec error");
        }

        private function handleConnectionFail(event:WebSocketErrorEvent):void 
        {
            trace("connection error");
        }

        private function handleWebSocketClosed(event:WebSocketEvent):void 
        {
            trace("close");
        }

        private function handleWebSocketOpen(event:WebSocketEvent):void 
        {
            trace("connected !");
        }

        private function handleWebSocketMessage(event:WebSocketEvent):void 
        {
            trace("message !");
        }

    ]]>
</fx:Script>

正在通过端口443连接到echo.websocket.org套接字已连接正在启动SSL/TLS GET / HTTP/1.1
主持人echo.websocket.org
升级:WebSocket
连接:升级
Sec-WebSocket-密钥:OCZu2AgYt0WgBcLFRV5EyQ==
产地:*
Sec-WebSocket版本:13
套接字断开连接关闭
只有我的handleWebSocketClosed方法被激发,我的handleWebSocketOpen从未被激发(奇怪...)。
我可以用pur javascript连接服务器,所以我知道这不是服务器问题。
在GitHub的解释项目中我可以读到:
此客户端无法与部署在Internet上的draft-75或draft-76/-00服务器一起使用。它仅适用于最新的RFC 6455标准
我不知道这是不是我连接失败的原因...
这是一种用as 3连接到WebSocket服务器的方法吗?
谢谢,为我糟糕的英语道歉

93ze6v8z

93ze6v8z1#

看一下html5 Websocket with SSL,似乎尝试通过SSL连接需要进行一些修改以使其使用flash.net.SecureSocket。您可能需要重写一些AS3WebSocket以使用该套接字,而不是flash.net.Socket。

相关问题