使用 Ruppell 的 Sockets 插件在 Heroku 上托管 TCP 服务器时出现“连接被外部主机关闭”错误

问题描述 投票:0回答:1

我正在尝试在 Heroku 上托管一个简单的 TCP 服务器。

我正在使用 Ruppell 的 Sockets Heroku 插件。我的 Procfile 看起来像这样:

web: bundle exec ruby web.rb -e "production" -p $PORT
socket: ./lib/sockets-connect/rs-conn ruby ./tcpserver.rb

tcpserver.rb 看起来像这样:

require 'eventmachine'

 module EchoServer
   def post_init
     puts "-- someone connected to the echo server!"
   end

   def receive_data data
     send_data ">>>you sent: #{data}"
     close_connection if data =~ /quit/i
   end

   def unbind
     puts "-- someone disconnected from the echo server!"
  end
end

EventMachine.run {
  EventMachine.start_server "127.0.0.1", ENV['RUPPELLS_SOCKETS_LOCAL_PORT'], EchoServer
}

RUPPELLS_SOCKETS_FRONTEND_URI
tcp://22405.339f7303-45df-4e9c-a049-5a15c47168ab.sockets.ruppells.io:22405/

当我这样做

telnet tcp://22405.339f7303-45df-4e9c-a049-5a15c47168ab.sockets.ruppells.io 22405
时,我会得到
Connection closed by foreign host.

我对 TCP 的经验很少。知道如何解决这个问题吗?

heroku tcp
1个回答
3
投票

对于其他遇到此问题的人,您的本地服务器必须绑定到

0.0.0.0
而不是
127.0.0.1

© www.soinside.com 2019 - 2024. All rights reserved.