Ich versuche, socket.io in meine Keystone-App zu integrieren. Ich instanziieren das Objekt in der Tiefe meines keystone.app wie so:Socket.io und Keystone - Referenz socket.io Objekt
var sock = require('socket.io');
keystone.start({
onStart: function() {
var hserver = keystone.httpServer;
var io = keystone.set('io', sock.listen(hserver)).get('io');
// Socket function
io.on('connection', function (socket) {
console.log('Socket connected.')
socket.on('hon', function (data) {
socket.emit('hon_res', {data})
});
});
}
});
Das alles funktioniert gut und ich bin in der Lage Nachrichten von meinen Steckdosen zu emittieren und zu empfangen. Das Problem tritt auf, wenn ich versuche, eine Nachricht zu senden, nachdem eines meiner Modelle zum Einfügen von Daten in Mongo db verwendet wurde.
In meiner Schema/Modell-Datei. Ich habe diesen Teil hinzugefügt. Es wird korrekt aufgerufen, aber der Socket scheint keine Verbindung zur Socket-Sitzung herzustellen.
Hon.schema.post('save', function(data){
var io = keystone.get('io');
io.attach(keystone.httpServer)
io.sockets.emit('hon_upd');
});
ich diesen Fehler in der Client-Konsole empfangen, ein paar Sekunden nach dem Postsparfunktion heißt:
VM7414 extensions::messaging:79 Uncaught Error: Attempting to use a disconnected port object
at PortImpl.postMessage (extensions::messaging:79:13)
at Port.publicClassPrototype.(anonymous function) [as postMessage] (extensions::utils:149:26)
at destroyPurpleBox (file:///Users/thobyy/Library/Application%20Support/Google/Chrome/Default/Extensions/mlomiejdfkolichcflejclcbmpeaniij/7.2.2_0/dist/purplebox.js:43:9)
at file:///Users/thobyy/Library/Application%20Support/Google/Chrome/Default/Extensions/mlomiejdfkolichcflejclcbmpeaniij/7.2.2_0/dist/purplebox.js:51:5
haben Sie einen Weg finden, um Buchse integriert, mit Trapez js io ..? – usama