0
私は、私のキーストーンアプリケーションにsocket.ioを統合しようとしています。私はそうのように私のkeystone.appの底にオブジェクトをインスタンス化しています:Socket.ioとKeystone - 参照socket.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})
});
});
}
});
これは、すべてが正常に動作し、私は私のソケットからのメッセージを発すると受け取ることができています。私のモデルの1つがmongo dbにデータを挿入するのに使用された後にメッセージを出そうとしているときに問題が発生します。
私のスキーマ/モデルファイル内。私はこの部分を追加しました。正しく呼び出されていますが、ソケットがソケットセッションに接続できないようです。
Hon.schema.post('save', function(data){
var io = keystone.get('io');
io.attach(keystone.httpServer)
io.sockets.emit('hon_upd');
});
私はセーブ機能ポストが呼び出され、数秒後に、クライアントコンソールでこのエラーを受け取る:
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
上で削除してみてください、あなたはキーストーンJSとioに、ソケットを統合する方法を見つけることでしたか..? – usama