Ich versuche genau zu verstehen, wo/wie ich node.js/Socketstream Server-Code implementieren sollte, die unabhängig von Client-RPC-Aufrufe ausgeführt wird. Als einfaches Beispiel versuche ich so etwas wie dies eine regelmäßige Uhr Update angeschlossenen Clients zu schieben auf der Server-Seite mit:Socketstream (0.3) serverseitigen Code Verwirrung
var pushTime = function() {
d = new Date();
ss.publish.all('newServerTime', d);
return;
};
setInterval(pushTime, 1000);
und dem Kunden auf diese veröffentlichen Ereignis abonnieren Einrichtung sorta wie folgt aus:
ss.event.on('newServerTime', function(time) {
return $('#serverTime').val(time);
});
Problem: wo stelle ich die serverseitige pushTime-Funktion her? Die Dokumente legen nahe, die/server/rpc Baum so habe ich es in /server/rpc/demo.js aber das ergibt diesen Fehler:
Reference: ss ist nicht
definiert Wohlgemerkt, ich bin nicht setzen der Code im Block export.actions; Ich glaube, das ist nur für Client-RPC-Anrufe.
versuchte ich ss am Anfang der Datei setzen:
ss = require('socketstream');
aber das muss doch falsch sein - jetzt die ‚publish.all‘ Methode nicht existiert.
Ich habe versucht, den Code an der Unterseite von app.js, gleich nach dem Aufruf von ss.start. Wieder heißt das, dass die publish.all-Methode nicht existiert (vielleicht erst, wenn ein Client angeschlossen ist?). Ich bin verloren. Jede Hilfe wird geschätzt; hoffe das war klar.
Danke Owen - und danke für Socketstream. Ich hatte gehofft, dass die Antwort in etwa so war. Eine möglicherweise unverschämte Nachfolge - ich denke, ich werde das Projekt in coffeescript angehen. app.js lebt offensichtlich außerhalb des ss cs <> js link/kompilieren Ökosystems. Vorgeschlagener Arbeitsablauf? Soll ich einfach ein anderes Modul im Server-Api-Tree bauen und es irgendwie benötigen? – jlabrie
Hey jlabrie.Sicher kannst du das tun (würde ich), oder app.js zu app.coffee ändern und deine App mit 'coffee app.coffee' starten. Persönlich bevorzuge ich die erste Option. – socketstream