Eingeschränkte Funktionalität bei onAppStart

Issue #28 open
Dennis Dudek created an issue

Versucht man im onAppStart einen Topic zu setzen oder den Nutzern ein appContent zu setzen, schlägt dies ohne Feldermeldung fehl.

Workaround: Die Funktionen im setTimeout Zeitverzögert aufrufen.

setTimeout(function() {
        //setze das Topic neu, nach Start der App
        App.setTopic(App.getTopic());

        //Jeden den htmlHomeContent geben
        var onlineUsers = KnuddelsServer.getChannel().getOnlineUsers(UserType.Human);
        for(var i = 0; i < onlineUsers.length; i++) {
            if(onlineUsers[i].canSendAppContent(App.htmlHomeContent)) {
                onlineUsers[i].setAppContent(App.htmlHomeContent);
            }
        }
    },1000);

Comments (10)

  1. Dennis Dudek reporter

    1 Sekunde Delay reicht wohl auch nicht immer. Hier scheint also etwas verzögert zu initialisieren.

  2. Adrian Preuss

    Ich nutze selbst setTopic bei onAppStart und hab überhaupt keinerlei Probleme - Channel-Topic wird immer gesetzt, selbst wenn ich Random-Strings aus einem array nutze.

    Da man ja nie recht weiß (Sorce davon fehlt übrigens) was deine Methoden App.setTopic(App.getTopic()); im AppContainer überhaupt machen, kann man da auch schlecht was zu sagen.

  3. Dennis Dudek reporter

    Es ist funktionierender Code und der Fehler tritt auch nicht immer auf. Vielleicht hat es Iro oder so aber bereits gefixed.... Und das Problem hatte ich mit setAppContent() ja ebenfalls und da willst du mir nun nicht ernsthaft sagen, dass der Code nicht funktioniert.

  4. Adrian Preuss

    Das will ich Ernsthaft damit sagen, ja.

    Nehmen wir mal ein simples Beispiel: Chris ist der einzigste! der immer wieder Probleme mit seiner Persistenzen hat, Niemand anderes; Selbst in größeren Channels... Ich glaub das gleiche wird bei dir der Fall sein. Es muss am Code liegen, anders kann ich es nicht erklären :D

  5. Christoph Kühl

    Das topic wird nur gesetzt , wenn du auch eine Änderung durchführst. Und ich vermute mal einfach das ist hier nicht immer der Fall. Bei setappcontent wird es ähnlich sein da du es beim appshutdown nicht removesd und dich auf das Auto close verlässt.

  6. Dennis Dudek reporter
    1. Falsch Das Topic war vorher unterschiedlich - Der Fehler liegt in der Funktionalität bei onAppStart - Der Code zum setzen ist selbstverständlich auch richtig.
    2. Falsch Der Fehler tritt auch auf, wenn kein UIContent offen ist..

    Und damit die blöde Diskussion ein Ende hat App.setTopic = function(topic) { var channelConfiguration = App.channel.getChannelConfiguration(); var channelInformation = channelConfiguration.getChannelInformation(); channelInformation.setTopic(topic); };

    Code ist 100% richtig, und selbst wenn ich es nicht über App.getTopic() aufgerufen habe sondern mit einem definierten String (sogar mit nem zufälligen String in dem ich Date.now() aufgerufen habe, änderte sich das Topic nicht und es gab keine Fehlermeldung. Erst als ich es im Timeout später aufgerufen habe funktionierte es wieder. Mal klappte es nach 1000ms timeout mal erst nach 5000ms timeout....

    und jetzt um himmelswillen verkauft jemand anderes für dumm! verkauft mich nicht für doof Leute....

    Und übrigens: der gleiche Code lief ganze Zeit ohne Probleme und es gab erst Probleme (direkt) nach dem Serverumzug...

  7. Adrian Preuss

    Das hat nichts damit zu tun dass bei onAppStart noch nicht alles zur Verfügung steht; Selbst Sascha sagte bereits häufiger, dass man bei onAppStart sicher gehen kann dass alles zur Verfügung steht (man denke damals an die Situationen wo Leute innerhalb des AppContainers, aber außerhalb von onAppStart calls getätigt hatten).

    Ich gehe schwer davon aus dass der AppServer/Chatserver die Pakete verschluckt; Dieses phänomen habe ich bereits nun öfters bemerkt dass Nutzer sich beschwerten, dass einige Dinge nicht übermittelt wurden.

  8. Dennis Dudek reporter

    In wie weit dass der Fall ist, dass Pakete verschluckt werden während des Start der App sei dahingestellt. Dennoch habe ich nicht die volle Funktionalität in onAppStart, entweder weil die Pakete verschluckt werden oder weil nicht alles initialisiert ist. Das Endresultat für mich als Appentwickler bleibt das gleiche.

  9. Log in to comment