2009-10-14 6 views

Répondre

0

Hmm, par définition, le serveur sert et les demandes du client. Donc, pour créer un scénario push, vous devez d'abord initialiser une connexion du client au serveur. Ensuite, vous pouvez laisser la connexion inactive jusqu'à ce que vous ayez besoin d'envoyer quelque chose au client. L'interrogation est l'autre méthode, où le serveur conserve les messages et le client vérifie fréquemment si de nouveaux messages sont disponibles. Un serveur ne peut pas établir une connexion avec le client. Cela ferait du client un serveur. En d'autres termes, vous pouvez demander au client Flash d'enregistrer son adresse IP actuelle auprès du serveur et d'ouvrir un port lui-même, en établissant lui-même un serveur. Ensuite, le serveur Red5 devient un client et peut se connecter au serveur à l'intérieur du client Flash. Mais j'imagine que de nombreuses restrictions de sécurité vont empêcher votre programme flash d'agir comme un serveur dans le monde réel.

+0

hmmm Je veux juste informer le client que quelque travail est fait ... mais je ne peux pas retourner un peu "ouais génial je l'ai fait" dans la même méthode (qui fonctionnerait) donc j'ai besoin d'aviser le client plus tard ... – Hank

+0

On dirait que vous voulez interroger. En fonction de la durée de ces tâches, vous pouvez demander à votre client de consulter le serveur toutes les secondes/minute/heure/jour pour voir si le travail a été effectué.Vous pouvez également conserver une connexion entre le serveur et le client, le client attendant simplement le code de réponse du serveur, mais avec un délai d'expiration, au cas où. – Killroy

+0

ouais :) finalement résolu de cette façon ...;) – Hank

1

Cela ressemble à un bon départ: http://www.red5tutorials.net/index.php/Tutorials:Getting_Started_With_Red5_Server

Voir près du bas pour leur client flash simple.


Edit: Plus d'options disponibles maintenant qu'il est clair que nous allons à partir du serveur-client:

On dirait que vous avez besoin de faire quelque chose comme ceci: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetConnection.html

et

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetStream.html

ce qui signifierait utiliser "NetStream.play()" pour que le serveur e client.

Ou vous pourriez vouloir regarder la classe Socket (s) et créer manuellement une connexion socket directe entre le client et le serveur. Gardez à l'esprit ici, je n'ai jamais utilisé Red5. Juste essayer d'aider :)

+0

:/C'est le chemin de Flash à Red5 ... Je en ai besoin dans l'autre sens;) Red5 -> Flash Et aussi pas la méthode-Return-Value-Way .. – Hank

1

Pour ceux qui n'ont pas trouvé de réponse jusqu'à aujourd'hui: Je travaille en red5, et vous pouvez envoyer un message de red5 à flash par un RemoteSharedObject dans AS3 se connectant à un sharedobject en red5.

Code Serveur:

ISharedObject so = getSharedObject(scope, "chat"); 
    so.setAttribute("message","Welcome"); 

Code client:

 so = SharedObject.getRemote("chat", connection.uri, false); 
    so.connect(connection); 
    so.addEventListener(SyncEvent.SYNC, syncChatHandler); 

    private function syncChatHandler(event:SyncEvent):void { 
    Alert.show(so.data.message,"Information"); 
    } 

Ce code affichera une alerte sur les utilisateurs connectés avec le message "Bienvenue". De là, lisez beaucoup de documentation et utilisez votre imagination.