应用程序,一个旨在与Unity客户端通信的API服务器工作得很好,直到我添加了套接字。使用chrome扩展socket.io测试器手动测试socket.io,证明它在我的本地机器上工作得很好。现在我已将它部署到heroku,它不起作用。它马上就崩溃了。
通常,这个问题的答案都是关于PORT没有正确设置,但在这种情况下我已经将端口设置为process.env.PORT,所以不应该有任何问题。我的应用程序 正常工作,直到我添加了socket.io。
这是我的基本服务器文件:
import express from "express"
import mongoose from "mongoose"
import http from "http"
import config from "./config/index.js"
mongoose.Promise = global.Promise
// mongo
mongoose.connect(config.mongo.uri)
mongoose.connection.on("error", function(err) {
console.error("MongoDB services error: " + err)
})
// server
let app = express()
let server = http.createServer(app)
let socketio = require("socket.io")(server)
require("./socketio").default(socketio)
require("./express").default(app)
require("./api").default(app)
// start
server.listen(config.port, function () {
console.log("Listening on port: " + config.port)
})
export default app
这里有什么暗示应用程序崩溃的原因吗?
答案 0 :(得分:2)
对于那些可能也以这种方式遇到Heroku问题的人。事实证明,我的配置文件中包含了我的.gitignore文件中列出的正确端口设置。 (我不知道它是如何到达那里的!)当应用程序启动时我没有注意日志,所以我错过了配置文件丢失的日志。 Heroku的工作人员能够指出这一点给我留下了深刻的印象。