提问人:Kingsley Simon 提问时间:10/9/2023 更新时间:10/9/2023 访问量:36
从 Websocket ActionCable + Postman 接收数据
Receive Data from Websocket ActionCable + Postman
问:
我有以下代码在Rails API项目中使用ActionCable设置我的websocket实现
routes.rb (路由.rb)
mount ActionCable.server => '/cable'
应用.rb
config.action_cable.mount_path = nil
开发.rb
config.action_cable.url = "ws://localhost:3001/cable"
config.action_cable.disable_request_forgery_protection = true
频道/application_cable/channel.rb
module ApplicationCable
class Channel < ActionCable::Channel::Base
end
end
频道/jobs_channel.rb
class JobsChannel < ApplicationCable::Channel
def subscribed
stream_from "jobs_channel"
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
end
end
使用 Redis。我有我cable.yml
development:
adapter: redis
url: "redis://localhost:6379/0"
test:
adapter: test
production:
adapter: redis
url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
channel_prefix: <your_app_name>_production
因为我想同时运行我的 Rails 服务器和我的 Websocket 服务器,所以我设置了一个文件 cable/config.ru
require ::File.expand_path('../../config/environment', __FILE__)
Rails.application.eager_load!
run ActionCable.server
现在我启动我的 rails 服务器,并将我的 websocket 服务器启动为 .我还确保我的redis服务器正在运行。rails s
bundle exec puma -p 3001 cable/config.ru
在邮递员上,我像这样设置,它能够连接到 websocket 服务器
为了能够将数据发送到websocket,我应该能够做这样的事情
serialized message = {"data": "Hello world"}
ActionCable.server.broadcast("jobs_channel", serialized_message)
但它似乎不起作用。我似乎无法通过 websocket 传递数据。我做错了什么?
如果有人能为我指出正确的方向,将不胜感激。
谢谢
答: 暂无答案
评论
ActionCable.server.broadcast("jobs_channel", serialized_message)
rails s
rails console