在过去的一个小时里,我一直把头撞在墙上,试图让一台deepstream.io服务器在heroku上运行,但没有成功。
我尝试使用以下方法:https://github.com/deepstreamIO/ds-demo-heroku
我完全没有做任何修改就克隆了这个回购,并把它放在我自己的回购中,我的heroku应用程序就是这样做的。当heroku试图构建并运行它时,我在日志中看到了这一点:

就这样结束了。我做错了什么?
Sidenote:我读到过Heroku不允许为应用程序保留任何所需的端口,但是它传递了一个应用程序可以在变量中使用的端口?如果这是正确的,那么在一个终端需要可靠地连接到特定端口的服务器的生产环境中,这是如何工作的。如果由于某种原因,服务器应用程序崩溃了,然后重新启动,然后Heroku给它分配了一个不同的端口,现在所有的端点都无法连接。
其次,deepstream.io似乎需要指定两个端口(一个用于TCP非起始通信量,另一个来自“浏览器”通信量,参见https://deepstream.io/tutorials/core/getting-started-quickstart/)。如果Heroku只提供应用程序可以绑定到的一个端口,那么如果需要两个端口,deepstream.io又如何工作呢?
任何帮助都是非常感谢的--谢谢!
发布于 2016-08-04 08:21:58
错误是Error invalid schema, expected mongodb。你可以在原木上看到。
要使这个设置正常工作,您需要设置一个环境变量:MONGODB_URI,它用于配置文件
这个回购是与一个尚未出版的教程相结合创建的,我没想到有人会在此之前尝试:)
所以我现在把这个教程放到自述文件中:https://github.com/deepstreamIO/ds-demo-heroku
要解决您的问题,只需在您的配置文件禁用缓存和存储连接器或阅读教程,并完成所有步骤。
Sidenote 1:
$PORT是由heroku自动分配的内部端口。您应该始终使用外部端口,对于web应用程序来说,外部端口总是80。内部端口将只在您的应用程序内工作。这一点在本教程中也有解释。
Sidenote 2:
Deepstream通过HTTP websocket和TCP套接字提供连接。没错,不能同时使用heroku的两个端口,因为heroku不允许您管理多个端口。实际上,heroku也做不允许TCP连接。您可以只使用HTTP连接,浏览器可以使用它,也可以通过Node.js (这个问题是固定的之后)使用。
只有在性能对您非常重要时,才需要TCP套接字连接。但是在这种情况下,您应该从heroku转移到另一个提供者;)本教程中也提到了这个部分。
https://stackoverflow.com/questions/38759176
复制相似问题