我正在努力使Webhook在Rails应用程序中着陆。我的Rails服务器正在运行,我已经连接到ngrok和外部应用程序。但是指出我的应用程序无法运行的错误。
localhost:3000
运行,我可以将Webhook接到ngrok。怎么了?
与http://9xxxxxx5.ngrok.io的连接已成功通过隧道传输到您的ngrok客户端,但是该客户端未能建立与本地地址localhost:3000的连接。
确保Web服务正在localhost:3000上运行,并且它是有效地址。
遇到的错误是:拨打tcp [:: 1]:3000:getsockopt:连接被拒绝
看到localhost:3000后,Rails应用程序运行。为什么无法连接......
这是结果ps aux | grep ruby
。
user 63542 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/assets
user 63541 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/channels
user 63540 0.0 0.0 4298800 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/test/mailers/previews
user 63539 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.04 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/uploaders
user 63538 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/services
user 63537 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/models
user 63536 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/mailers
user 63535 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/jobs
user 63534 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/helpers
user 63533 0.0 0.0 4306992 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/controllers
user 63532 0.0 0.0 4298800 40 s000 S+ 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/db
user 63531 0.0 0.0 4298800 40 s000 S+ 7:00PM 0:00.06 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/config/locales
user 64927 0.0 0.0 4258736 192 s002 R+ 7:42PM 0:00.00 grep ruby
我试图杀死最后一个。但是我不能,因为每次进程号都是随机的,如下所示:
我仍然无法连接ngrok ....
答案 0 :(得分:1)
感谢@lascostenycoder
我很惊讶能在sudo vi /etc/hosts
之后解决该问题。
我曾为MAMP编辑过其他项目。所以我做不到。
感谢您的帮助:)
答案 1 :(得分:0)
您需要将端口添加到您的ngrok命令,Rails默认本地开发为3000
ngrok http 3000
然后,您应该可以在浏览器中输入ngrok地址
http://xxxxxx.ngrok.io/
我能够重现您的错误的唯一方法是停止我的Rails服务器,然后当我尝试打开ngrok url时收到您的错误。因此,这意味着您的服务器未运行或ngrok无法连接到它。
确保/etc/hosts
中没有发生任何可能引起问题的事情。
确保没有任何流氓红宝石进程在运行。根据您更新的评论,运行此命令将其全部杀死
ps aux | grep ruby | awk '{print $2}' | xargs kill -9
或者尝试看看弹簧是否是问题所在:
spring status
spring stop
然后检查并确保所有内容均已杀死,然后从步骤1重新开始。
ps aux | grep ruby
可能是您的应用/配置所特有的?因此,请尝试杀死所有正在运行的Rails服务器,如果不确定,请重新启动计算机。然后转到一个新的项目文件夹,只需添加一个新的Rails应用程序,然后在其运行后再次尝试ngrok,看看它是否有效。还要确保在ngrok命令中使用http和https。