Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-07-2011, 21:17   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Swiz / MVC + Socket

Aloa,

wollte mal in die Runde fragen, ob hier jemand ist der mit SWIZ entwickelt und vielleicht nen Tipp hat wie man Socket-Server (die Verbindung ist über die gesamte Application-Dauer Online) "smooth" einbauen kann.

Meine Lösungen erscheinen mir gerade nicht ganz so cool, wie der Rest meiner App^^



Grüße, Nico
__________________
Meine Website
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 07:31   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Wie sieht deine Lösung denn aus? Naiv würde ich sagen, du bindest an ein Model, dass durch den SocketServer (Client) Updates erfährt.
Omega Psi ist offline   Mit Zitat antworten
Alt 26-07-2011, 09:23   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Öhm meine aktuelle Lösung ist, einen SocketController zu haben der per Postconstruct (also "vor allem anderen") das Socket "initialisiert".

Dann habe ich verschiedene FUnktionen, die was an das Socket übergeben, sprich writeShort() usw....


Das Problem ist irgendwie... Wenn ich zB. nen Login starte... Ist das Schreiben in das Socket kein Problem (einfach die Methode login, die ich erstellt habe, aufrufen.)

Problematisch ist eher das auslesen der Antwort... Ich habe ja nur einen Listener der auf dem Socket liegt, der den ProgressData "überwacht". Ergo da laufen alle Antworten der gesamten App auf.

Ne idee wie man dann unterscheiden kann... "hat er gerade das antwort pakets des Logins bekommen, eine nachricht eines anderen Users, etc....

Ich kann mir gerade keine Lösung ohne endlose if/Switch anweisungen vorstellen... was ja auch nicht sonderlich performant wäre..


Grüße, Nico

Ps:
Oder wäre es besser den Listener nur direkt vor dem Schreiben zu setzen, den dann ka "loginProgressListener" zu nennen und den dann, nach dem auslesen, direkt wieder zu löschen?
Dabei fällt mir ein... Das macht keinen Sinn... Weil es ja auch anfragen des Servers an die App gibt, die nicht vom Client gestartet werden... AHHH


Btw. Du weißt das doch bestimmt - ist eine Switch/Case anweisung "besser" (weil schneller) als eine if Abfrage? (In Situationen wie oben beschrieben)
__________________
Meine Website
Freue mich über jeden Besucher. :)

Geändert von Nico B. (26-07-2011 um 09:29 Uhr)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 09:41   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Da die Server Kommunikation asynchron abläuft und du potenziell mehrere Schreibvorgänge simultan (sequentiell natürlich) starten kannst, bringt das mit dem Listener herzlich wenig, denke ich.

Laut Forum gibt sich das nicht viel mit switch/if. Das spielt sich eh allen im unteren Rand ab und das ja auch nicht in jedem Frame. An der Stelle sehe ich keinen Optimierungsbedarf.

Mal über AMF nachgedacht?
Omega Psi ist offline   Mit Zitat antworten
Alt 26-07-2011, 10:02   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Hm nachgedacht ja, aber vielleicht habe ich da die falsche Sicht drauf....

So wie ich das jetzt sehe (aufgrund meines Kenntnisstands) müsste mein Partner (der macht den Serverkram) irgendeine .net AMF Libary benutzten um mir direkt entsprechende Pakete schicken zu können - richtig?
(Bzw. was bringt das, bezogen auf die Implementation? Eigentlich ist das doch "nur" Schreiberleichterung für mich, da Daten/Objekte direkt als Array ankommen - oder? )

Eigentlich ist unser aktueller Weg (finde ich) gar nicht sooo schlecht. Funktionieren tut das super, nur das Handling ist halt sone Sache (wie ja oben beschrieben...)
Ich glaube einfach, dass mir der entscheidene Gedanke noch nicht gekommen ist, das sinnvoll zu implementieren. Kann ja nicht sein, dass ich der Erste bin - der das versucht?
__________________
Meine Website
Freue mich über jeden Besucher. :)

Geändert von Nico B. (26-07-2011 um 10:17 Uhr)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 11:10   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Habe nochmal kurz mit meinem mate gesprochen... Ich werde es jetzt - grob - so aufbauen:

Code:
    size        = socket.readShort opcode   = socket.readShort security  = socket.readByte switch(opcode) { ** case 0xBBBB: ****** login(restlliches Packet) ***break;     case 0xCCC: messageReceived(); break; } protected function login():void { } protected function messageReceived():void { }



usw.
__________________
Meine Website
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 11:11   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Naja, mit einer guten AMF Library bekommst du typed Objects zurück, will heissen die Serialisierung in den Datentypen wird übernommen. Das Testen und Arbeiten mit eine Backend, Stub/Fixtures oder Mocks wird dadurch ja erst richtig möglich.

Das bedeutet aus meiner Sicht einen erheblichen Produktivitätsgewinn.
Omega Psi ist offline   Mit Zitat antworten
Alt 26-07-2011, 11:18   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Dann werd ich mal schauen, ob ich meinen Backendler dazu bewegen kann das später auch zu implementieren.

Spart ja wirklich Zeit und ist irgendwie "cooler". (Deshalb fand ich Cf immer so genial^^) Habe allerdings direkt 2 Libarys gefunden (für .net) die nicht mehr betreut werden.
__________________
Meine Website
Freue mich über jeden Besucher. :)

Geändert von Nico B. (26-07-2011 um 11:23 Uhr)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 12:00   #9 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
DotNet ist nicht meine Welt, sorry.
Omega Psi ist offline   Mit Zitat antworten
Alt 26-07-2011, 12:07   #10 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
Ich werd einfach mal schauen, wie es jetzt läuft.
Wer dann hier nochmal "Ergebnisse" posten - kann mir nicht vorstellen das es niemanden gibt der es ähnlich anstellen will...

Dange trotzdem für die Hilfe.
__________________
Meine Website
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 26-07-2011, 12:12   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Bidde.
Omega Psi ist offline   Mit Zitat antworten
Alt 26-07-2011, 19:29   #12 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.683
So jetzt muss ich doch nochmal was "allgmeineres" fragen und hoffe jemand kennt die Antwort....


Ich kann Daten nur in das Socket (den Socket?) schreiben, wenn ich das jeweilige "write" im Event.CONNECT Listener aufrufe... Rufe ich später eine Funktion auf passiert gar nichts und nichts kommt beim Server an...

Das Socket ist aber weder "null" noch ist die connected Eigenschaft "false"....


Jemand eine Idee?
__________________
Meine Website
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Swiz] Funktionen erst bei Initialisierung der View aufrufen? Nico B. Flex programmieren 2 09-12-2010 14:36
[Swiz] "Bean of type [class ServiceHelper] not found! Nico B. Flex allgemein 6 06-08-2010 13:17
FlexUGhh-Meeting (28.07.09): Sönke Rohde “Swiz Framework - Brutal Einfach” marc Events 0 16-07-2009 17:11
socket = new Socket() - Infos? flashbabe Flex programmieren 0 31-07-2007 09:17


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele