2017-04-04 41 views
0

当我sailsjs 记录创建后尝试publishCreate我收到此错误错误:“this.adapter.clients”使用sailsjs时publishCreate

TypeError: this.adapter.clients is not a function 
at Namespace.clients (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/sails-hook-sockets/node_modules/socket.io/lib/namespace.js:253:16) 
at Object.addRoomMembersToRooms (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/sails-hook-sockets/lib/sails.sockets/add-room-members-to-rooms.js:50:42) 
at introduce (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/lib/hooks/pubsub/index.js:1342:23) 
at wrapper [as introduce] (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/lodash/index.js:3095:19) 
at publishCreateSingle (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/lib/hooks/pubsub/index.js:1237:16) 
at /Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/lib/hooks/pubsub/index.js:1069:16 
at arrayEach (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/lodash/index.js:1289:13) 
at Function.<anonymous> (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/lodash/index.js:3345:13) 
at publishCreate (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/lib/hooks/pubsub/index.js:1068:11) 
at wrapper [as publishCreate] (/Users/oteng/.nvm/versions/node/v4.6.0/lib/node_modules/sails/node_modules/lodash/index.js:3095:19) 

这是创建函数

Tbl_Direct_Cash.create({ 
      amount_paid: amount_paid, 
      payment_type: payment_type, 
      payment_ID: payment_ID, 
      tbl_user: tbl_user 
     }).exec(function (e, r) { 
      if (e) { 
       console.log(e); 
       return res.ok('TRANSACTION FAILED....TRY AGAIN'); 
      } else { 

       //console.log(e); 
       Tbl_Direct_Cash.publishCreate({id: 40}); 
       return res.ok('TRANSACTION SAVED'); 

      } 
     }); 

,这是我的手表方法

notify: function (req, res) { 
    if (req.isSocket) { 
     Tbl_Direct_Cash.watch(req); 
     Tbl_Deduction.watch(req); 
     // Gene.watch(req); 
     return res.ok() 
    } 
} 

创建请求被从移动发应用田地的通知要求

io.socket.on('connect', function() { 
    io.socket.get('/dashboard/notify', function (e, r) { 
     console.log(e, r); 
    }); 
}) 

从管理客户机

+0

您使用的是什么版本的Sails?你是使用内置的内存适配器套接字,还是'socket.io-redis'? – sgress454

+0

我们使用的是sails版本:0.12.7和'socket.io-redis' – spirit

+0

什么版本的socket.io-redis? – sgress454

回答

0

我socket.io,Redis的版本是很老派。更新到最新版本解决了问题