Javascript Socket.io和Keystone-参考Socket.io对象
我正在尝试将socket.io集成到我的keystone应用程序中。我正在keystone.app底部实例化对象,如下所示:Javascript Socket.io和Keystone-参考Socket.io对象,javascript,node.js,socket.io,keystonejs,Javascript,Node.js,Socket.io,Keystonejs,我正在尝试将socket.io集成到我的keystone应用程序中。我正在keystone.app底部实例化对象,如下所示: var sock = require('socket.io'); keystone.start({ onStart: function() { var hserver = keystone.httpServer; var io = keystone.set('io',
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})
});
});
}
});
这一切都很好,我能够从我的套接字发出和接收消息。当我的一个模型被用来将数据插入mongo db后,当我试图发出消息时,问题就会出现
在我的模式/模型文件中。我添加了这一部分。正在正确调用它,但套接字似乎无法连接到套接字会话
Hon.schema.post('save', function(data){
var io = keystone.get('io');
io.attach(keystone.httpServer)
io.sockets.emit('hon_upd');
});
调用post save函数几秒钟后,我在客户端控制台收到此错误:
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
为什么要再次将io连接到httpserver
io.attach(keystone.httpServer)
尝试删除上面的行