Ich versuche zu sehen, wie ich eine js-Funktion aufrufen kann, nachdem der Client ein Ergebnis von einem Meteor-Methodenaufruf erhalten hat. Das einzige, was ich bekommen konnte, war, die Funktion myFunc
nur auf dem Client aufzurufen, der den eigentlichen Methodenaufruf gemacht hatte.
Irgendwelche Gedanken, wie ich die Funktion auf allen zurzeit abonnierten Klienten aufrufen kann?
Hier ist der Code:
%Vor%Danke
Momentan können Sie einen Methodenaufruf nicht direkt an alle Clients senden. Zumindest soweit ich das beurteilen kann. Eine Umgehung wäre jedoch, eine Sammlung mit dem Namen Warnungen zu erstellen und sie auf Änderungen zu überwachen. Wenn Sie dann eine Nachricht an alle Benutzer senden möchten, können Sie das Dokument unter Warnungen ändern:
Kunde:
%Vor%Server:
%Vor%Eine weitere Option ist die Verwendung des Meteor Stream-Pakets , mit dem die Verwendung einer mongodb-Sammlung auf der Serverseite vermieden werden soll. Es unterstützt Client zu Clients, Server zu Clients, Client zu Server und Server zu Server Messaging, einschließlich einer Unterstützung für Meteor Cluster
Wenn Sie bei meteor nur Sammlungen verwenden möchten, können Sie mit dem folgenden Code entweder eine Nachricht vom Client an alle Clients oder eine Nachricht vom Server an alle abonnierten Clients senden. Verwenden Sie diesen Mechanismus, um eine Funktion auf der Clientseite auszulösen, sobald die richtige Nachricht empfangen wurde. Der Code wurde so erstellt, dass Sie niemals nutzlose Gegenstände in der Sammlung haben werden.
%Vor%Ich rufe einfach eine clientseitige JavaScript-Funktion auf, um ein Skript-Tag in Ihre HTML-Vorlage einzufügen, die an Ihre Sammlung gebunden ist. Immer wenn ein neues Element eingefügt wird, würde dieses Tag in den Client eingefügt werden, um Ihre Funktion auszuführen. Ich habe eine Sammlung Anruf Uploads mit einigen Eigenschaften wie name . Die folgende Vorlage löst drawpoints () clientseitige Funktion beim Empfang eines neuen Elements in der Uploads-Sammlung aus:
%Vor%Tags und Links meteor