问题
在开发过程中,我在Rails服务器和ActionCable之间有分离的进程。

➜  backend git:(dev) bundle exec puma cable/config.ru -p 1337
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development

我的配置很经典
# cable/config.ru
require_relative '../config/cable_environment'
Rails.application.eager_load!

run ActionCable.server

在我的电脑里
# Set Action Cable server url for consumer connection
config.action_cable.url = 'wss://localhost:4001'
config.action_cable.allowed_request_origins = [
  'https://localhost:4000',
]

看起来它在工作同时,我在VueJS中使用一些分离的前端来监听websockets你应该知道几天前整个配置都在工作。
当我试着听前端的插座时
development.rb
我所知道的
ssl的配置是正确的(正如我之前所说的那样),而且配置看起来非常好。我也不是唯一一个在这个Rails项目上工作的人,而是唯一一个面对这个问题的人。
当我试图检查它时,端口正在使用中,我执行以下操作
lsof -ti:4001

我注意到根本没有进程在运行,我不知道如何解决这个问题。由于websocket服务器似乎是actioncable的实习生,我不知道如何搜索崩溃的内容,没有显示错误,puma已经启动并运行,但websocket s没有。
我试过的
我记不清过去几天我到底做了什么,可能把网弄坏了,所以我试了很多办法
我尝试了很多方法来更改配置,但是我在这里粘贴了原始配置基本上把整个文档运行了多次,并尝试了我能想到的所有组合
我试图更改端口或终结点
我更改了SSL证书,这些证书是自托管的(并且正在工作),并生成了新的证书,它似乎与问题无关
我试着降低美洲狮的等级,但没有改变什么。
我试着把这个项目重新安装到一个新的目录中,但是仍然没有成功。
我还多次通过RVM重新安装Ruby,并尝试了几个版本,但都没有成功。
我甚至不顾一切地把电脑升级到macos mojave,一点问题都没有解决。
我不知道的是
我对通过ActionCable生成WebSocket的机制一无所知为什么没有错误它是如何工作的我的配置中有遗漏吗它是否与我的计算机上可能已经改变的NPM/Node/Apollo之类的东西交互我从事多个项目,使用多种技术,很难找到确切的来源。。。
如果你需要更多的信息,请告诉我。谢谢你的时间。

最佳答案

解决方案
我想我有一个nginx设置,使我的插座与tls工作,我忘记了。如果你最终来到这里,你可能也会遇到同样的情况。
您可以通过在控制台中执行nginx -t来检查,并在IDE中打开文件(如果有)。

# /usr/local/etc/nginx/nginx.conf
...
server {
  listen   5212 ssl;
  server_name  localhost;
  ssl_certificate /Users/loschcode/Desktop/some-path/ssl/server.crt;
  ssl_certificate_key /Users/loschcode/Desktop/some-path/ssl/server.key;

  location / {
    rewrite ^(.*) https://localhost:5214$1 permanent;
  }
}
...

我最近更改了用于项目的目录,这使得证书的路径错误,因此我的问题修路使它起作用。

10-01 07:17
查看更多