2016-08-04 3 views
0

を超えて、私はsailsjsと立ち往生この例を実装しようとしている間に新しいですassets/js/myapp.js帆JSソケット最大コールスタックサイズはエラー

io.socket.on('hello', function gotHelloMessage (data) { 
    console.log('Socket `' + data.id + '` joined the party!'); 
}); 
io.socket.get('/say/hello', function gotResponse(body, response) { 
    console.log('Server responded with status code ' + response.statusCode + ' and data: ', body); 
}) 

私はアプリケーションを実行するとエラー

ending 500 ("Server Error") response: 
RangeError: Maximum call stack size exceeded 
    at Server.hasOwnProperty (native) 
    at _hasBinary (/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/sails/node_modules/sails-hook-sockets/node_modules/socket.io/node_modules/has-binary/index.js:49:45) 
    at _hasBinary (/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/sails/node_modules/sails-hook-sockets/node_modules/socket.io/node_modules/has-binary/index.js:49:63) 

私はsails.sockets.broadcast()ためのパラメータを少し微調整する必要があると思う...

答えて

3

を助けてください。ドキュメンテーションの例が古くなっているか、不完全なものかもしれません。これを試してみてください:

SayController.js:

module.exports = { 
    hello: function(req, res) { 
    // Make sure this is a socket request (not traditional HTTP) 
    if (!req.isSocket) {return res.badRequest();} 

    // Have the socket which made the request join the "funSockets" room 
    sails.sockets.join(req, 'funSockets'); 

    // Broadcast a "hello" message to all the fun sockets. 
    // This message will be sent to all sockets in the "funSockets" room, 
    // but will be ignored by any client sockets that are not listening-- i.e. that didn't call `io.socket.on('hello', ...)` 
    //            ▼ this is "data" in io.socket.on('hello', function gotHelloMessage (data) 
    sails.sockets.broadcast('funSockets', 'hello', {id: 'my id'}, req); 

    // Respond to the request with an a-ok message 
    // ▼ The object returned here is "body" in io.socket.get('/say/hello', function gotResponse(body, response) 
    return res.ok({ 
     message: "OK" 
    }); 
    } 
} 
関連する問題