我正在尝试将我的空中应用程序连接到不在我的域中的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-Key:OCZu2AgYt0WgBcLFRV5EyQ ==
原产地:*
Sec-WebSocket-Version:13
套接字已断开连接 靠近
只触发了我的handleWebSocketClosed
方法,我的handleWebSocketOpen
永远不会被解雇(奇怪......)。
我可以使用pur javascript连接服务器,所以我知道这不是服务器问题。
在GitHub解释项目中,我可以阅读:
此客户端无法使用draft-75或draft-76 / -00服务器 部署在互联网上。它仅适用于最新的RFC6455 标准
我不知道这是否是我无法连接的原因......
这是使用as3连接到websocket服务器的方法吗?
谢谢,抱歉我的英语不好
答案 0 :(得分:1)
看看html5 Websocket with SSL,似乎尝试通过SSL连接需要进行一些修改才能使用flash.net.SecureSocket。您可能需要重写一些AS3WebSocket以使用它而不是flash.net.Socket。