Спасиб @etc
почитал
Хабр.
нашёл готовые классы...
http://github.com/y8/websocket-as/tr...05f355d0e0e3cf

Код AS3:
import y8.net.WebSocket;
var ws:WebSocket = new WebSocket();
ws.addEventListener("open", function():void {
trace("Connection opened");
ws.send("Hello from flash!");
ws.close();
});
ws.addEventListener("close", function():void {
trace("Connection closed");
});
ws.addEventListener("message", function(event:*):void {
trace("Message: ", event.data);
});
ws.addEventListener("error", function(event:*):void {
trace("Error: ", event.error);
});
ws.open("ws://socket.example.com/path", "http://myapp.example.com");
только пришлось поправить чтоб адресс был "ws://socket.example.com/path:8043"
а то класс URI не вытаскивал порт из строчки.

Код AS3:
this.uri = new URI(uri);
this.port = Number(this.uri.port) || 80; //80 is default port
всегда 80
класс грузит crossdomain.xml из
log:
http://socket.example.com.ru:80/crossdomain.xml

Код:
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
<site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>
из FlashBilder всё работает прекрасно. из любого другого места

Код:
Error #2048: Нарушение изолированной среды
вот осталось только разобраться почему, и всё.