2017-08-17 112 views
1

我試圖將我的空氣應用程序連接到不在我的域中的websocket服務器。我在GitHub上發現了這個代碼:https://github.com/theturtle32/AS3WebSocket,但我無法連接到服務器。將空氣/閃光燈應用程序連接到websocket服務器

這裏是我的代碼:

<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> 

連接到echo.websocket.org端口443 插座進行連接啓動SSL/TLS GET/HTTP/1.1

主持人:echo.websocket.org

升級:WebSocket的

連接:升級

二段的WebSocket密鑰:OCZu2AgYt0WgBcLFRV5EyQ ==

來源:*

二段的WebSocket-版本:13

插座中拔出 close

只有我的handleWebSocketClosed方法被解僱,我的handleWebSocketOpen永遠不會被解僱(怪異......)。

我可以將服務器連接到pur javascript,所以我知道這不是服務器問題。

在GitHub上說明的項目,我可以讀:

此客戶端將不會與草案-75或草案-76 部署在互聯網上/ -00服務器的工作。這只是最近的RFC6455 標準

我不知道這是爲什麼我無法連接的原因...

這是與連接到WebSocket服務器的方式as3?

謝謝,對不起我的英文不好

回答

1

看看html5 Websocket with SSL,好像試圖通過SSL連接,需要做一些修改,以使其使用flash.net.SecureSocket。你可能需要重寫一些AS3WebSocket來使用它來代替flash.net.Socket。

+0

謝謝你的回覆。當我在代碼中使用'ws'而不是'wss'時,這是行得通的。爲什麼?我不知道......但是當我用我的真實網址(我可以在這裏透露)進行測試時,它無法正常工作......收到HTTP狀態:403 Forbidden 收到101以外的HTTP響應代碼。實際響應代碼:403禁止繼續搜索... –

相關問題