Могу ли я отправить сообщения через базовый NetConnection Edite (воспроизводимый) объект Netstream?

StackOverflow https://stackoverflow.com/questions/3538681

Вопрос

Вот моя проблема: у меня есть объект NetConnection, подключенный к серверу. На вершине я создаю объект Netstream, и он начал играть в файл с сервера. Классика пока.

Теперь мне нужно, чтобы иметь возможность отправлять некоторые (короткие) сообщения обратно на сервер, в разные моменты во время игры, но, четко, Использование существующего соединения TCP.

От того, что я могу прочитать в Документы, Основной объект NetConnection поддерживает «двусторонняя связь между клиентом и сервером», и, очевидно, слой TCP поддерживает его. Я в курсе концепций TCP сетевых концепций довольно хорошо, но определенно не о том, как Flash реализует их.

  1. Это правильно? Можно ли сделать использование NetConnection (или другого другого механизма)?

  2. Как бы я пошел по этому поводу (пример будет здорово, но концептуальное описание процесса будет работать так же хорошо). Как именно я отправляю сообщение от клиента на сервер через NetConnection?

  3. Активный объект Netstream работает любым способом с такой операцией?

Спасибо.

Это было полезно?

Решение

Да, ты можешь.

Я предполагаю, мы говорим о подключении к Flash Media Server.

Используйте метод NetConnection.call (), который удаленно выполняет метод скрипта на стороне сервера.

public function call(command:String, responder:Responder, ... arguments):void

Вы должны определить этот метод Server-Side в качестве прототипа класса клиента подключения

например

Client.prototype.MyMethod = function(arg)
{
trace("Server received " + arg + "\n");
}

Тогда вызывая этот метод должен выглядеть как:

var nc:NetConnection;

//initialize net connection and connect

nc.call("MyMethod", null, "Hello, server");

Если вам нужно получить какой-либо результат - используйте экземпляр класса Responder вместо NULL.

Если вам нужен сервер, чтобы позвонить в соответствии с методом клиента, используйте функцию Server-Side «Вызов» на объекте клиента. В этом случае вам придется определить какой-то объект на стороне клиента, что имеет метод обратного вызова:

Сторона клиента:

var obj = new Object();
obj.MyCallback = function(arg:Object)
{
trace ("Received message from server: " + arg as String);
}
nc.client = obj;

Серверная сторона:

clientObject.call("MyCallback", null, "Hello, client");

С уважением, Давид.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top