带有Java EconRefused的Heroku WebSocket(拒绝连接)
我正在用Java编写一个小游戏服务器 我使用库创建websocket服务器。 当我在本地主机上运行我的服务器时,一切正常,我可以从任何地方连接到它。但是,当我将我的应用提交给Heroku时,每次尝试建立套接字连接时,我都会收到一个错误ECONREFUSE(连接被拒绝) 值得一提的是,当我和foreman一起运行我的应用程序时,应该是模拟heroku环境的,一切都正常工作 作为websocket服务器的一个端口,我尝试使用8080和5000到8000之间的许多其他端口 我只能猜测heroku上发生了什么,因为日志只包含http请求的基本信息 请帮忙,我快要放弃了:( 编辑 以下是我的Proc文件中的内容:带有Java EconRefused的Heroku WebSocket(拒绝连接),java,heroku,java-server,java-websocket,Java,Heroku,Java Server,Java Websocket,我正在用Java编写一个小游戏服务器 我使用库创建websocket服务器。 当我在本地主机上运行我的服务器时,一切正常,我可以从任何地方连接到它。但是,当我将我的应用提交给Heroku时,每次尝试建立套接字连接时,我都会收到一个错误ECONREFUSE(连接被拒绝) 值得一提的是,当我和foreman一起运行我的应用程序时,应该是模拟heroku环境的,一切都正常工作 作为websocket服务器的一个端口,我尝试使用8080和5000到8000之间的许多其他端口 我只能猜测heroku上发生
web: ./build/install/my-app/bin/my-app
更新
创建了一个简单的抽象应用程序来展示问题:
(当然由工头测试,在当地环境下工作)
WebSocket连接到'wss://test-websocket-yan.herokuapp.com:39773/'失败:建立连接时出错:net::ERR_connection_拒绝
您必须使用Heroku设置为
$port
env var的端口:
在Heroku上,应用程序是完全独立的,不依赖运行时将web服务器注入执行环境来创建面向web的服务。每个web进程只需绑定到一个端口,并侦听来自该端口的请求。Heroku将绑定到的端口指定为端口环境变量
有关更多信息,请参阅:我在回答自己的问题,与大家分享我是如何连接到Heroku上的Java websocket服务器的
你可能只需要设置
REDIS\u URL
就可以了。我的例子是REDISCLOUD\u URL
。你在Heroku上绑定应用程序的$PORT
env var吗?你说你在尝试5000到8000之间的端口。是在Heroku上吗?你在Proc文件中绑定$PORT env var是什么意思?不。我应该吗?谢谢,我会的试试看。但这是否意味着我不能使用任何其他端口?如果我需要3个不同的端口来监听怎么办?Heroku支持每个应用程序进程使用一个端口。而不是为WS使用不同的端口,你需要在你的应用程序中使用不同的路由。有第三方,但可能不适合这种情况。我刚刚用loc进行了测试al$PORT环境变量。没有任何区别:(请在问题中查看我的更新,如果需要,我可以提供更多详细信息。好的,我做到了!有趣的是我不必向wss连接添加任何端口!:)现在是这样的:wss://test-websocket-again.herokuapp.com/events/“:)嘿,我正在heroku上部署我的java websocket应用程序。一切正常,但我无法使用java客户端连接到它(如果部署在本地主机上,它可以工作),它会给出javax.websocket.DeploymentException:Handshake error
我在本地主机和ws://host\u name/Dashboard/hello上使用了ws://localhost:8080/Dashboard/hello