Rails 3.2 앱에서 TradingView의 자바 스크립트 차트를 사용하고 있습니다. 그러나 그것은 port 443 must be opened for it to show 인 것 같습니다. 따라서 포트가 사용자에게 열려 있는지 확인하고 그렇지 않은 경우 차트 옆에 무언가를 표시하려고합니다. 레일에서 포트가 열려 있는지 확인
나는이 게시물에, "Ruby - See if a port is open"을 발견하고이 답변으로 일하고있다 :def port_open?(ip, port=443, seconds=1)
포트가 항상 같은 될 것입니다 확인 이후 : 그러나
require 'socket'
require 'timeout'
def port_open?(ip, port, seconds=1)
Timeout::timeout(seconds) do
begin
TCPSocket.new(ip, port).close
true
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
false
end
end
rescue Timeout::Error
false
end
, 나는 수를 수정 나를 위해.
나는이 같은 메서드를 호출 해요 : I가 방화벽 뒤에있을 때
@ip = request.remote_ip
test = port_open?(@ip)
나는이 문제를 발견했다.
내가 이해할 수없는 것은 방화벽 뒤에 있지 않은 차트를 볼 수 있지만 아직 로컬에서 코드를 실행하면 차트가 표시되지만 false
이 표시된다는 것입니다.
그러나 내가 port=3000
을 변경하면 나는 사실을 알게됩니다. 내가 도대체 뭘 잘못하고있는 겁니까? 감사!