【问题标题】:Cloud code & push notifications may be unavailable云代码和推送通知可能不可用
【发布时间】:2018-02-28 04:39:41
【问题描述】:

这是我在使用 Parse-Server (/Heroku) 上的应用时遇到的问题。

我不断收到消息:

WARNING, Unable to connect to 'https://myapp.herokuapp.com/'. Cloud code and push notifications may be unavailable!

这是我运行命令时的完整日志:git push heroku master

2018-02-2...+00:00 app[api]: Build started by user me@xyz.com
2018-02-2...+00:00 app[api]: Deploy bduxedc8 by user me@xyz.com
2018-02-2...+00:00 app[api]: Build succeeded
2018-02-2...+00:00 app[api]: Release v25 created by user me@xyz.com
2018-02-2...+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2018-02-2...+00:00 heroku[web.1]: Process exited with status 143
2018-02-2...+00:00 heroku[web.1]: Restarting
2018-02-2...+00:00 heroku[web.1]: State changed from up to starting
2018-02-2...+00:00 heroku[web.1]: Starting process with command `npm start`
2018-02-2...+00:00 app[web.1]: 
2018-02-2...+00:00 app[web.1]: > parse-server-example@1.4.0 start /app
2018-02-2...+00:00 app[web.1]: > node index.js
2018-02-2...+00:00 app[web.1]: 
2018-02-2...+00:00 app[web.1]: parse-server-example running on port 23377.
2018-02-2...+00:00 heroku[web.1]: State changed from starting to up
2018-02-2...+00:00 heroku[router]: at=info method=GET path="/health" host=myapp.herokuapp.com request_id=fb429287-9b14-4373-97ab-30dac19a4db7 fwd="1.2.3.438" dyno=web.1 connect=2ms service=20ms status=404 bytes=217 protocol=https
2018-02-28T04:03:21.595649+00:00 app[web.1]: 
2018-02-28T04:03:21.595660+00:00 app[web.1]: WARNING, Unable to connect to 'https://myapp.herokuapp.com/'. Cloud code and push notifications may be unavailable!
2018-02-28T04:03:21.595663+00:00 app[web.1]: 

如果我将配置中的https 更改为http,我会看到完全相同的行为。

如果我尝试在浏览器中访问https://myapp.herokuapp.com/,我可以毫无问题地做到这一点。

我已经阅读了很多关于这个问题的帖子,但没有什么能促使我找到解决方案。 如果有人能告诉我如何解决这个问题,那就太好了。

【问题讨论】:

    标签: node.js heroku push-notification parse-server parse-cloud-code


    【解决方案1】:

    我遇到了这个问题,它可能会在将来对某人有所帮助。

    请注意,这是可能引发此警告的原因之一。 这是用于解析服务器版本:2.8.2

    要使用 express 创建您自己的独立解析服务器,所涉及的基本步骤接近:

    1. 使用您的所有配置创建一个解析服务器对象。例如:const api = new ParseServer(config);
    2. config 将包含服务器 URL 以及所有其他要求。
    3. 创建一个快速应用程序对象。例如: const app = express();
    4. 然后将解析服务器API挂载到express like -> app.use(mountPath, api);
    5. 然后像这样创建服务器: const httpServer = require('http').createServer(app);
    6. 然后开始监听如下端口:httpServer.listen(port);

    调用挂载后,解析服务器将通过向 /health 端点发出请求来验证配置中提到的 url。

    如果由于某种原因在挂载 API(第 4 点)后监听端口(第 6 点)出现延迟,则会抛出上述警告。

    例如,在一种情况下,我建立了一个猫鼬连接,然后才开始监听端口。因此,来自解析服务器的 URL 验证失败,尽管之后一切正常。

    其中一种可能的解决方案是在安装解析 API 之前完成所有这些工作,并确保安装和侦听端口之间没有延迟,如上所述。

    虽然这可能不是在 heroku 上创建解析服务器的确切步骤,但其想法是:

    解析服务器将在配置中提到的服务器 url 上调用验证 url。

    如果在你mout parse apis后启动服务器有延迟,就会抛出上述警告。

    【讨论】:

      【解决方案2】:

      2018-02-2...+00:00 heroku[router]: at=info method=GET path="/health" host=myapp.herokuapp.com request_id=fb429287-9b14-4373-97ab-30dac19a4db7 fwd="1.2.3.438" dyno=web.1 connect=2ms service=20ms status=404 bytes=217 protocol=https

      通知状态是404,这个不存在,主机说myapp.herokuapp.com

      您是否将 server_url 键设置为字面意义上的 myapp.heroku.com,或者您是否编辑了您的应用程序的名称?

      【讨论】:

      • 我可以在浏览器中访问myapp.herokuapp.com(“myapp”是假的,但实名有效),那么为什么我会得到你提到的这个 404 是我的问题......在同时问题消失了,我不知道为什么。无论如何,谢谢你的帮助。
      • 对不起,我的意思是它不一定会阻止系统工作,但我仍然收到这个奇怪的消息。我不知道为什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多