Могу ли я отправить сообщения через базовый NetConnection Edite (воспроизводимый) объект Netstream?
-
30-09-2019 - |
Вопрос
Вот моя проблема: у меня есть объект NetConnection, подключенный к серверу. На вершине я создаю объект Netstream, и он начал играть в файл с сервера. Классика пока.
Теперь мне нужно, чтобы иметь возможность отправлять некоторые (короткие) сообщения обратно на сервер, в разные моменты во время игры, но, четко, Использование существующего соединения TCP.
От того, что я могу прочитать в Документы, Основной объект NetConnection поддерживает «двусторонняя связь между клиентом и сервером», и, очевидно, слой TCP поддерживает его. Я в курсе концепций TCP сетевых концепций довольно хорошо, но определенно не о том, как Flash реализует их.
Это правильно? Можно ли сделать использование NetConnection (или другого другого механизма)?
Как бы я пошел по этому поводу (пример будет здорово, но концептуальное описание процесса будет работать так же хорошо). Как именно я отправляю сообщение от клиента на сервер через NetConnection?
Активный объект 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");
С уважением, Давид.