Pregunta

Aquí está mi problema: Tengo un objeto NetConnection conectado a un servidor. En la parte superior se crea un objeto NetStream y comenzó a reproducir un archivo desde el servidor. Clásica hasta el momento.

Lo que necesito ahora, es ser capaz de enviar algunos (corto) mensajes de vuelta al servidor, en varios momentos durante el juego, pero, claramente, utilizando la conexión TCP existente .

Por lo que puedo leer en la docs , los soportes subyacentes objeto NetConnection "conexión bidireccional entre un cliente y un servidor" y, obviamente, la capa TCP lo soporta. Soy consciente de los conceptos de redes TCP bastante bien, pero definitivamente no de cómo Flash implementos de ellos.

  1. ¿Es esto correcto? ¿Se puede hacer uso de NetConnection (o algún otro mecanismo)?

  2. ¿Cómo voy a ir haciendo esto (un ejemplo sería grande, pero una descripción conceptual del proceso funcionaría igual de bien). ¿Cómo funciona exactamente puedo enviar un mensaje desde el cliente al servidor a través de NetConnection?

  3. ¿Tiene el objeto NetStream activa interfiere de ninguna manera con tal operación?

Gracias.

¿Fue útil?

Solución

Sí, se puede.

Asumo, estamos hablando de la conexión a Flash servidor de medios de comunicación.

Uso método () NetConnection.call que ejecuta de forma remota método script del lado del servidor.

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

Usted tiene que definir este método en el servidor como un prototipo de la clase de cliente de conexión

por ejemplo.

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

A continuación, llamar a este método debe ser similar a:

var nc:NetConnection;

//initialize net connection and connect

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

Si usted necesita para obtener algún resultado. - uso instancia de clase de respuesta en lugar de null

Si necesita servidor para el lado del servidor utilización método de la función "llamada" del cliente llamada en objetos de cliente. En este caso, usted tiene que definir un objeto en el lado del cliente, cosa que tiene el método de devolución de llamada:

lado del cliente:

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

lado del servidor:

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

Saludos, David.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top