java - 带有 Java ECONNREFUSED 的 Heroku Websockets(连接被拒绝)

标签 java heroku java-server java-websocket

我正在使用 Java 编写一个小型游戏服务器。

我使用 TooTallNate-Java-Websockets库来创建我的 websocket 服务器。 当我在 localhost 上运行我的服务器时一切正常,我可以从任何地方连接到它。但是当我将我的应用程序提交到 Heroku 时,每次我尝试建立套接字连接时我都会收到错误 ECONNREFUSED(连接被拒绝).

值得一提的是,当我使用应该模拟 heroku 环境的工头运行我的应用程序时,一切正常。

作为我的 websocket 服务器的端口,我尝试使用 808050008000 之间的许多其他端口。

我只能猜测 heroku 上发生了什么,因为日志只包含 http 请求的基本信息。

请帮忙,我快要放弃了:(

编辑

这是我的 Proc 文件中的内容:

web: ./build/install/my-app/bin/my-app

更新 创建了一个简单的抽象应用程序来展示问题: (当然是在 foreman 测试的,在本地环境下是可以正常工作的)

  1. 我的 html/js 测试员:Testerpage
  2. 我的主要 java Jetty 服务器:Java Main
  3. 控制台错误信息: 与“wss://test-websocket-yan.herokuapp.com:39773/”的 WebSocket 连接失败:连接建立时出错:net::ERR_CONNECTION_REFUSED

最佳答案

我正在回答我自己的问题,以分享我是如何设法连接到 Heroku 上的 Java websocket 服务器的。

  1. 使用 Java 创建您的网络套接字服务器,实现由您决定,您可以使用 javax 或 Jetty websockets 或 TooTallNate-Java-Websockets ,我用过Jetty。这是我的 implementation .我关注了this例子。
  2. 当连接到 heroku 上的网络套接字时,请使用以下方案 ws://+ yourHerokuAppAdress + yourSocketEndpoint 。端点是你的 websocket 正在监听的相对地址,在我的例子中是 "/socket" 。无需指定端口!

关于java - 带有 Java ECONNREFUSED 的 Heroku Websockets(连接被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549316/

相关文章:

java - java上传文件到ftp服务器出错

java - 通过套接字发送对象和对象数组

java - 如何拦截类型或方法的元注释

java - 对具有不同返回值和类型的函数使用 DRY 原则

java - fragment 不显示图标

django - Heroku Django 部署错误 : "port" option should be >= 0 and < 65536: null

ruby-on-rails - Ruby/Rails 报告工具?

java - 如何删除Java中特定字符之前的所有字符?

php - 拉维尔 4 : Running composer when deploying to Heroku

java - 如果我想在其背后运行 Java 代码,我应该使用什么 Web 服务器?