Medien richtig mit mehren Clients synchronisieren

  • C#

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Krischkros.

    Medien richtig mit mehren Clients synchronisieren

    Hallo.
    Ich möchte vorerst fragen, wie man am besten Medien mit anderen synchronisiert.
    Beispiel:
    Ich habe eine Sound-Datei.. beispielsweise ein FX-Sound, welches 10 Sekunden lang ist.
    Jetzt möchte ich das mittels Programm anderen Nutzern dieses Programms synchronisieren.
    Sprich, das meine lokale Datei übertragen wird und wenn alle Clients soweit sind soll der Master darüber benachrichtigt werden, das alle bereit sind.

    Ich (Master), User1 (Client), User2(Client)
    Ich -> User1---->
    -------------------|(beide sind so bereit)--> Master benachrichtigen -> Master kann Sound-Datei starten und bei anderen wird es ebenfalls gestartet
    ------> User2--->

    Das ist jetzt eine billige Version eines Sequence Diagrams :)

    Ich nehme mal an das ich einen Server und einen Client brauche.
    Der Server bekommt die Daten des Masters und gibt das an allen Clients.
    Wenn alle Clients diese heruntergeladen haben und abspiel bereit sind, "triggern" diese Clients jeweils dem Server zu, das sie bereit sind.
    Sind alle Clients so weit fertig, ohne den Download durch beenden gestoppt zu haben und der Server weiß bescheid, soll der Server den Master benachrichtigen, das alle Bereit sind.
    z.B. habe ich eine Liste in der steht, ob der Client bereit ist oder gerade herunterladet.
    Wenn alle bereit sind kann der Master starten ;)

    Ich hoffe mir könnte da jemand hilfreiche Tipps geben :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Krischkros“ ()

    Nein, aber ich verwende in meinem Beispiel einen Chat, das hab ich bei dir nicht gesehen :D. Allerdings geht es nicht viel besser/einfacher, würde ich mal sagen. So ist's doch ziemlich praktisch ;). Und wenn du schon meinst, wieso willst du überhaupt Ideen? Du bist doch deiner Ansicht nach fertig :D.
    Ich dachte, jemand hätte andere oder bessere Lösungsansätze.
    Wenn man das anhand eines Beispiels mit dem Chat erläutert, ist das sehr mager, weil dazu deutlich mehr Informationen nötig sind.
    Quellseiten wären auch sehr praktisch, weil ich keine Ahnung habe, wie genau den Status u. Ä. bidirektional versende..

    Ziel der Sache ist eben, dass ich das Programm sukzessiv aufbauen möchte.
    Dazu brauche ich eben eure Hilfe, weil meine Kollegen und ich einerseits das Tool brauchen und mich die Entwicklung eines solchen Programms interessiert.
    Tipps wären echt nützlich ;)
    Hierzu fände ich das "Observer Design Pattern" ganz angebracht (de.wikipedia.org/wiki/Beobachter_(Entwurfsmuster))
    Hierzu gibt es beispielsweise 2 Klassen. Die eine ist der Server (Manager) und die andere Klasse sind die Clients. Der Server verwaltet in einer Liste alle Clients (diese müssen sich beim Server anmelden). Gibt es jetzt eine Änderungen (in deinem Fall so eine Sounddatei) werden in einer Schleife alle Clients darüber benachritigt und können darauf reagieren.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Es gibt dazu eine Klasse im Framework:
    msdn.microsoft.com/de-de/library/vstudio/ms668604.aspx

    Wie diese verwendet wird kannst denk ich aus dem Beispiel heraus finden. Ansonsten würd ich dir raten über das Pattern selbst aus google und co. die Infos zu ziehen.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten