Posso inviare un messaggio tramite il NetConnection sottostante di un ricevente oggetto (di gioco) NetStream?
-
30-09-2019 - |
Domanda
Ecco il mio problema: ho un oggetto NetConnection connesso a un server. In cima creo un oggetto NetStream e ha iniziato a riprodurre un file dal server. Classic finora.
Quello che ho bisogno ora, è quello di essere in grado di inviare un po 'di (breve) i messaggi al server, in vari momenti durante la ricreazione, ma, chiaramente, utilizzando la connessione TCP esistente .
Da quello che posso leggere la documenti , i supporti oggetto NetConnection sottostanti "connessione bidirezionale tra un client e un server" e ovviamente supporti strato TCP esso. Sono a conoscenza di concetti TCP networking abbastanza bene, ma sicuramente non di come Flash attrezzi li.
-
È corretto? Può essere fatto usando NetConnection (o qualche altro meccanismo)?
-
Come potrei fare per fare questo (un esempio sarebbe grande, ma una descrizione concettuale del processo avrebbe funzionato altrettanto bene). Esattamente come faccio a inviare un messaggio dal client al server tramite NetConnection?
-
Il NetStream attiva interferisce in alcun modo con una tale operazione?
Grazie.
Soluzione
Sì, è possibile.
presumo, stiamo parlando di connessione a Flash Media Server.
Usa NetConnection.call il metodo (), che esegue in remoto metodo di script lato server.
public function call(command:String, responder:Responder, ... arguments):void
È necessario definire questo metodo server-side come un prototipo di classe di cliente collegamento
per es.
Client.prototype.MyMethod = function(arg)
{
trace("Server received " + arg + "\n");
}
Quindi chiamare questo metodo dovrebbe essere simile:
var nc:NetConnection;
//initialize net connection and connect
nc.call("MyMethod", null, "Hello, server");
Se avete bisogno di ottenere qualche risultato -. Uso Responder istanza della classe, invece di null
Se avete bisogno di server per la funzione di chiamata di metodo cliente utilizzo sul lato server "chiamata" a oggetto client. In questo caso si dovrà definire un oggetto al lato client, che vanta il metodo di callback:
lato client:
var obj = new Object();
obj.MyCallback = function(arg:Object)
{
trace ("Received message from server: " + arg as String);
}
nc.client = obj;
Lato server:
clientObject.call("MyCallback", null, "Hello, client");
Saluti, David.