Javascript Heroku上的Socket.io

Javascript Heroku上的Socket.io,javascript,node.js,heroku,express,socket.io,Javascript,Node.js,Heroku,Express,Socket.io,我在Heroku上使用Node.js和socket.io时遇到了一个小问题。它在本地运行良好,但只要我把它推到Heroku并进入网站,它就会给我一个应用程序错误页面。查看日志,没有明显的错误,但我有一种感觉,它可能是什么。当我在本地运行它时,我使用sudo node server启动应用程序。只需节点服务器即可提供与heroku相同的效果 所以基本上,我的问题是:我如何让Heroku在sudo模式下运行,或者我如何才能完全消除使用sudo的需要 抱歉,因为这是我第一次使用socket.io,所以

我在Heroku上使用Node.js和socket.io时遇到了一个小问题。它在本地运行良好,但只要我把它推到Heroku并进入网站,它就会给我一个应用程序错误页面。查看日志,没有明显的错误,但我有一种感觉,它可能是什么。当我在本地运行它时,我使用
sudo node server
启动应用程序。只需
节点服务器
即可提供与heroku相同的效果

所以基本上,我的问题是:我如何让Heroku在sudo模式下运行,或者我如何才能完全消除使用sudo的需要

抱歉,因为这是我第一次使用socket.io,所以我对库的工作方式有点不熟悉


另外,我正在使用Express 3。

我会检查您正在使用的端口。例如,在一台普通的ubuntu机器上,您可能必须对编号较低的端口(如端口80)使用sudo。除此之外,Heroku还有很多负载平衡,因此您将用于连接到服务的端口可能与您告诉实例要侦听的端口不同

我会按照Heroku的示例尝试使用端口5000

我认为我们需要更多的细节。您不需要使用
sudo node server
(除非
server
正在执行一些需要root权限的操作,例如侦听特权端口,这可能是个坏主意)。好的,我照您说的做了,直到添加了
.listen(process.env.port | 5000)后它才起作用
但感谢您的帮助:)很抱歉,它没有立即工作-您知道应用程序最终会监听Heroku的哪个端口吗?这个符号,这| |这只是意味着,如果这是未定义的,那么使用它。是的,我后来意识到。我以前从未真正考虑过它,但我意识到,如果Heroku想在特定端口上运行它,它将存储在process.env.port中,否则我可以使用5000。我想在我试图强制它在特定端口上运行之前。