Я создал объекты Socket и ServerSocket в as3, затем подключил сокет, используя метод connect, передав ему хост и порт. Также я сделал объект ServerSocket, который прослушивал входящее соединение из сокета, отличного от сокета, который я только что создал. Когда ServerSocket обнаруживает соединение и начинает принимать данные, объект сокета отключается автоматически. Поэтому я хочу знать, как поддерживать связь в объекте сокета.Сокеты автоматически отключены в AS3
2
A
ответ
3
Я отправляю это как ответ, а не просто ссылаюсь на этот вопрос как дубликат, потому что ваша проблема не совсем такая же, как вопрос и ответ. Я расскажу здесь. Ответ я ссылка на ресурсы, однако предоставляет, которые помогут понять модель безопасности за соединительные гнездами, которые по моему мнению, этот вопрос здесь:
air 2.6 serversocket and actionscript 3 socket connection
Отрывок из связанного ресурса, который демонстрирует «рукопожатие "где файл политики передается в гнездо подключения:
private function handshakeHandler(event:ProgressEvent):void
{
var socket:Socket = event.target as Socket;
//Read the message from the socket
var message:String = socket.readUTFBytes(socket.bytesAvailable);
logCallback("Received: " + message);
if(message == "")
{
var policy:String = '\x00';
socket.writeUTFBytes(policy);
socket.flush();
socket.close();
logCallback("Sending policy: " + policy);
} else if (message == "BEGIN")
{
socket.removeEventListener(ProgressEvent.SOCKET_DATA, handshakeHandler);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
socket.writeUTFBytes("READY");
socket.flush();
}
}
файл политики, используемый в этом примере:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="8087" />
</cross-domain-policy>\x00
Звучит как проблема безопасности для меня ... Существует ли у вашего сервера междоменная политика? – weltraumpirat
Я считаю, что @weltraumpirat прямо на деньги здесь. Скорее всего, проблема безопасности. Вы должны убедиться, что, когда соединительный сокет запрашивает файл политики безопасности сокета, который вы обслуживаете, как и следовало ожидать. Я свяжусь с ответом, который разрешит это для вас. –