2012-07-28 60 views
0

我目前正在編寫一個將在Heroku上運行的聊天應用程序。我正在使用Node.JS和Socket.IO來執行此任務。它完美的作品時,我本地運行,但是當我把它部署到Heroku的我得到這個錯誤:Node.JS錯誤試圖創建聊天

app[web.1]: /app/node_modules/socket.io/lib/manager.js:724 
app[web.1]: rand.writeInt32BE(this.sequenceNumber, 11); 
app[web.1]:  ^
app[web.1]: TypeError: Object 

下面的代碼的Socket.IO部分(剩下的只是經典快遞碼):

var socket = require('socket.io'); 
var io = socket.listen(app); 

io.configure(function() { 
    io.set("transports", ["xhr-polling"]); 
    io.set("polling duration", 10); 
}); 

var usernames = {} 

io.sockets.on('connection', function (socket) { 
    socket.on('adduser', function(username) { 
     socket.username = username; 
     usernames[username] = username; 
     socket.join('room'); 
     socket.emit('action', username, 'connected'); 
     socket.broadcast.to('room').emit('action', username, 'connected'); 
    }); 
    socket.on('message', function(message) { 
     socket.emit('message', socket.username, message); 
     socket.broadcast.to('room').emit('message', socket.username, message); 
    }); 
}); 

有沒有人有任何想法如何解決這個錯誤?

回答

1

確保您使用的節點NPM的package.json指定的正確版本

"engines": { 
    "node": "0.8.x" 
    ,"npm": "1.1.x" 
} 
+0

太謝謝你了!我甚至不知道你可以指定節點和npm的版本來使用... – Cydonia7 2012-07-29 08:33:15