我有一个在Heroku中托管的Web应用程序,使用socket.io进行一些简单的聊天。但是,当我将代码部署到Heroku时,我收到以下错误:
at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=project-interactive-wall.herokuapp.com request_id=e98ea8c9-2cc0-47e5-a9bb-4a0d863ac712 fwd="14.202.200.120" dyno= connect= service= status=503 bytes= protocol=https
这是我在Heroku中的代码:
var app = require('express')(),
http = require('http').Server(app),
io = require('socket.io')(http);
app.get('/', function (req, res) {
res.sendFile(__dirname + '/client/index.html');
});
io.on('connection', function (socket) {
console.log('a user connected');
socket.on('disconnect', function () {
console.log('user disconnected');
});
socket.on('chat message', function (msg) {
io.emit('chat message', msg);
});
});
http.listen(3000, function () {
console.log('listening on *:3000');
});
有什么想法吗? Heroku文档没什么帮助。
答案 0 :(得分:1)
Heroku设置了一个PORT
环境变量,代码中需要该变量来运行服务器。
只需将process.env.PORT
添加到http.listen()
即可使其正常运行。
http.listen(process.env.PORT || 3000, function() {
// ...
})