Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io和Keystone-参考Socket.io对象_Javascript_Node.js_Socket.io_Keystonejs - Fatal编程技术网

Javascript Socket.io和Keystone-参考Socket.io对象

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',

我正在尝试将socket.io集成到我的keystone应用程序中。我正在keystone.app底部实例化对象,如下所示:

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)
尝试删除上面的行