Ruby on Rails 6: Почему метод получения(данных) не работает в действии моего приложения?

#ruby-on-rails #ruby-on-rails-6 #actioncable

Вопрос:

Я работаю над приложением для чата в реальном времени в Rails 6 с ОС Windows, и у моего ActionCable возникла проблема.

Адаптер разработки вообще не работает(я думаю), ни асинхронный, ни Redis. Я перепробовал все, но на этом я действительно застрял :(.

У меня есть канал под названием «комната» со следующей кодировкой на его внутренней стороне (приложение/каналы/room_channel.rb):

 class RoomChannel lt; ApplicationCable::Channel def subscribed  # stream_from "some_channel"  reject unless params[:room_id]   room = Room.find params[:room_id].to_i  stream_for room end  def unsubscribed  # Any cleanup needed when channel is unsubscribed  end end  

И на его лицевой стороне: (app/javascript/room_channel.js):

 import consumer from "./consumer"  let url = window.location.href; let room_id = parseInt(url.substring(url.search("rooms/")   6) );  if (url.indexOf("rooms/") != -1) {  console.log('Subscribed to room', room_id);  consumer.subscriptions.create({ "channel": "RoomChannel", "room_id": room_id }, {  connected() {  console.log('connected')  // Called when the subscription is ready for use on the server  },   disconnected() {  // Called when the subscription has been terminated by the server  },   received(data) {  console.log('data received successfully')  // Called when there's incoming data on the websocket for this channel  } }); }  

Когда я запускаю сервер, я могу подписаться и подключиться к каналу, но канал не может получать какие-либо входящие данные (в моем случае сообщения). Я знаю это, потому что он не выводит сообщение консоли («данные получены успешно»), когда я создаю новое сообщение в комнате.

Другая важная информация заключается в том, что, когда мой коллега запускает это приложение со своим компьютером с одинаковой кодировкой везде, он может получать данные (он получает вывод «данные получены успешно», когда отправляет сообщение в комнату). И, как я уже сказал, у нас везде одинаковая кодировка!

Поэтому я уверен в том, что это не ошибка кода, проблема в моем компьютере или я не знаю.

Кто-нибудь может помочь мне с этой проблемой? Спасибо, что прочитали и ждете ответов полезных людей! 🙂

Комментарии:

1. проверьте, не отключается ли ваше соединение по какой-либо причине. Выполните вход в консоль disconnected с помощью метода, указанного в room_channel.js файле