【问题标题】:URI for connecting to Heroku WebSocket endpoint用于连接 Heroku WebSocket 端点的 URI
【发布时间】:2020-04-01 18:06:47
【问题描述】:

我们在 Heroku 托管的 http://ourapp.com 上有一个 Java Web 应用程序,该应用程序的前端无法连接到在 Heroku dyno 中运行的 WebSocket 端点 (endpoint)。我们已经尝试过这些 URI:

  1. ws://ourapp.com/endpoint
  2. ws://ourapp.com:80/endpoint
  3. ws://ourapp.com:8080/endpoint
  4. ws://ourapp.com:8084/endpoint
  5. ws://ourapp.com:443/endpoint
  6. wss://ourapp.com/endpoint
  7. wss://ourapp.com:80/endpoint
  8. wss://ourapp.com:8080/endpoint
  9. wss://ourapp.com:8084/endpoint
  10. wss://ourapp.com:443/endpoint

以上都没有打开连接。我们在这里缺少什么?

PS:我设置了一个试验场:http://vakuutustiedot-dev.herokuapp.com/websocket.test.html(URI为PROTOCOL:vakuutustiedot-dev.herokuapp.com:PORT/trial

目标应用在 Heroku Apache Tomcat 8.5.38 中运行。 端口号怎么来的,不知道怎么弄。

【问题讨论】:

  • 我猜你知道相关的documentation。我们在谈论什么样的测功机,您是如何配置的?
  • @second Hobby 网络测功机。 Procfile:web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar $PORT target/*.war 如果您需要更多信息来诊断问题,请告诉我! :-)
  • ourapp.com 对我来说听起来像是 inbound request,工人无法处理。我认为您必须使用 Private Space Networking 并使用适当的 IP 地址。
  • 你能更具体一点,你使用的是什么 WebSocket 服务器?它是如何配置的?你能用 WS 来构建一个基本的 Heroku 端点来进行测试吗?
  • 执行并回显 $PORT 看看有什么?

标签: java heroku websocket endpoint


【解决方案1】:

也许您错过了将 WebSockets 的支持添加到 Heroku,就像在这个答案 (https://stackoverflow.com/a/50002416/11197115) 中一样?

【讨论】:

    【解决方案2】:

    也许您应该尝试配置devServerproxy 属性。当前端应用程序和后端 api 不在同一主机上运行时,使用此属性。也许下面的设置可能会解决您的问题。

    module.exports = {
      devServer: {
        proxy: 'ws://ourapp.com:8080/endpoint'
      }
    }
    

    有关更多信息,请参阅文档:https://cli.vuejs.org/config/#devserver

    【讨论】:

    • 我不使用 Vue.js。
    • @coderodde 检查您在自己的帖子下发表的评论。它说The frontend is built with Vue.js
    猜你喜欢
    • 2017-01-11
    • 1970-01-01
    • 2017-04-30
    • 2021-09-12
    • 2014-05-15
    • 2020-05-22
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多