javascript - Heroku 上的 Meteor js 具有 2 个或更多测功机

标签 javascript heroku websocket meteor

最近 Heroku 改变了他们的 websocket 的工作方式。当我将 dyno slider 设置为 2 或更多时,我的 MeteorJS 应用程序现在无法连接。这是我在浏览器控制台中收到的错误:

POST http://name.herokuapp.com/sockjs/414/ye3xmaq8/xhr_send 404 (Not Found) 

我并不特别需要 2 个测功机的性能,我只是不能让 1 个测功机在进入休眠状态后出现长时间延迟。

最佳答案

正如 Slava 提到的,Heroku 目前没有粘性 session ,因此拥有多个 Dyno 是行不通的。如果没有粘性 session ,来自同一客户端的后续请求将发送到不同的伺服系统,并且 Meteor 将发布状态存储在服务器上,因此这是行不通的。

针对您的 Dyno sleep 问题有一个解决方案。首先转到您的应用程序,然后选择底部的“+ 获取附加组件”,然后搜索“Heroku Scheduler”。这个插件可以让你运行计划任务。如果该计划任务是每十分钟左右“ curl ”一次到您的 Heroku 服务器,那么 Dyno 将不会进入休眠状态,因为它正在看到流量(即使它在 Heroku 中的形式:)

计划的命令可能如下所示:

curl http://www.yourHerokuAppUrl.com/ -s > /dev/null

选择 1x 测功机和“每 10 分钟”的频率,您将不会遇到因等待测功机从 sleep 状态恢复而导致的延迟问题。

关于javascript - Heroku 上的 Meteor js 具有 2 个或更多测功机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377459/

相关文章:

javascript - 我需要一个函数,它为属于某个范围的给定 float 输出十六进制值

ruby-on-rails - 在哪里可以找到 Heroku 构建环境中可用的二进制文件列表?

javascript - 如何检测对象是否位于 Canvas 元素的坐标处?

Heroku cedar 堆栈上的 Node.js 端口问题

c# - 使用 docker 将 microsoft bot 框架部署到 heroku 时出现问题

go - Websocket 在 Echo Framework 中向所有客户端发送消息

php - 安全 WebSocket (wss ://) doesn't work on Firefox

Go Gorilla Websockets ~ 在 ping/pong 失败(用户断开连接)时调用函数?

javascript - 递归地迭代一个对象并将父级附加到每个子级

javascript - 在 JavaScript 中标记化