socket.io: client-side emittieren callback wird nie ausgelöst
Herumspielen mit sockel.io-nur für proof-of-concept, alles funktioniert soweit Super, außer das ich nicht an meine emittieren callback arbeiten auf der client-Seite. Ich habe zu fehlen etwas doof hier, aber Dokumentation ist kein killer, zumindest im moment. Der server nimmt die "getSomeData" - event ganz gut, keine Fehler, überall.
Was ich sagen könnte in der client-socket.io-Quelle, es wird überprüft ob das Letzte argument zu emittieren, ist eine Funktion, die immer und nutzt es als callback, aber das Debuggen mehr als das war problematisch für mich.
Ich habe das Gefühl, zu fehlen einige Kern-Konzept hier..Ist das nicht das, was this.send(..)
tun soll? Ich konnte nur 1 Verwendung im Beispiel apps, und keines, bei dem das client-side-code für das Ereignis der emission zur Verfügung Stand.
Update: gerade zu sein klar, ich bin in der Tat absichtlich aussenden des Ereignisses client-Seite. Der Zweck dieser war es zu sehen, wenn sockel.io konnte genutzt werden, damit clients die ziehen die Daten auf Wunsch zusätzlich zu empfangen schiebt.
server:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.on("getSomeData", function() {
this.send({data: "some random data"});
});
});
client: (Konsole.log nie passiert)
<script type="text/javascript" src="http://localhost/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect('http://localhost');
socket.emit("getSomeData", function(data) {
console.log(data);
});
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie es aussieht, haben einige Logik geschaltet um, versuchen...
- und client -...
EDIT:
Client
get
undset
entspricht. Ich würde nicht über etwas erschweren. Verwendenemit
eine Funktion aufgerufen wird, undon
zu setzen.In Liam William ' s Antwort fand ich war es notwendig, senden Sie die Rückfrage (oder Bestätigung der Funktion) als Dritter Parameter auf der client-Strahlen:
Client:
Können Sie den Rückruf, aber Sie tun es ein bisschen anders:
Server: (app.js)
Client - (index.html)
Actaully, socket io erwähnt auch diese ein; Versand-und-immer-Daten-(Danksagung)