Javascript 操作电缆仅向客户端发送欢迎和ping消息

Javascript 操作电缆仅向客户端发送欢迎和ping消息,javascript,ruby-on-rails,websocket,redis,actioncable,Javascript,Ruby On Rails,Websocket,Redis,Actioncable,我可以让我的行动有线电视工作和订阅工作没有任何戏剧 现在,我有一个简单的HTML页面,上面有一些JS来连接和记录WebSocket消息 这是我在HTML页面上使用的脚本(目前用于测试) var socket=newwebsocket('ws://localhost:3000/cable'); socket.onopen=函数(e){ console.log(“已建立连接”) } socket.onclose=函数(e){ log(“发生错误”); 客户端。移除(套接字) } socket.onm

我可以让我的行动有线电视工作和订阅工作没有任何戏剧

现在,我有一个简单的HTML页面,上面有一些JS来连接和记录WebSocket消息

这是我在HTML页面上使用的脚本(目前用于测试)

var socket=newwebsocket('ws://localhost:3000/cable');
socket.onopen=函数(e){
console.log(“已建立连接”)
}
socket.onclose=函数(e){
log(“发生错误”);
客户端。移除(套接字)
}
socket.onmessage=函数(e){
var server_message=e;
console.log(服务器消息);
}
JSON.stringify(
{
“命令”:“消息”,
“标识符”:JSON.stringify({“频道”:“tv_频道_1e80f418-08b0-478a-a77c-67a052934433”}),
“数据”:{
“操作”:“开始广播”
}
}  
) 
我的rails输出已确认订阅已存在,并且我的页面正在控制台中记录来自websocket的ping消息和欢迎消息

如果我尝试广播任何内容,即使是作为测试(通过控制台或其他方式)

ActionCable.server.broadcast“tv_channel_1e80f418-08b0-478a-a77c-67a052934433”{留言:“oh hai”}
它不会被客户接走

我已通过brew安装了Redis all,并在cable.yml文件中安装了以下内容

development: &development
  adapter: redis
  url: redis://localhost:6379

test:
  adapter: redis
  url: redis://localhost:6379

production:
  adapter: redis
  url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
  channel_prefix: can-i-haz-dashboard-server_production
development:&development
适配器:redis
网址:redis://localhost:6379
测试:
适配器:redis
网址:redis://localhost:6379
制作:
适配器:redis
网址:
频道前缀:can-i-haz-dashboard-server\U生产
我可以通过redis cli确认消息正在传送到redis db

我能找到的唯一答案是安装redis

My connection.rb文件(通道编码用于测试)

模块应用程序表
类连接
我的TvChannel.rb

class-TvChannel
我希望我做错的事情很简单。任何帮助都将不胜感激


编辑:对不起,我不知道我是否清楚。我的Rails应用程序是只用于websocket的API,我没有提供给它的视图。
HTML页面是独立的,不在Rails环境中。

所以我希望如果没有其他内容,这对其他人会有所帮助

我需要实际发送订阅字符串

socket.onopen=函数(e){
console.log(“已建立连接”)
socket.send(订阅)
}
subscribeString=JSON.stringify(
{
“命令”:“订阅”,
“标识符”:JSON.stringify(
{“通道”:“通道:1e80f418-08b0-478a-a77c-67a052934433”}
)
}  
)

所以我希望如果没有其他东西,这对其他人有帮助

我需要实际发送订阅字符串

socket.onopen=函数(e){
console.log(“已建立连接”)
socket.send(订阅)
}
subscribeString=JSON.stringify(
{
“命令”:“订阅”,
“标识符”:JSON.stringify(
{“通道”:“通道:1e80f418-08b0-478a-a77c-67a052934433”}
)
}  
)

你在哪里写的这个js?我是说在哪个文件里?你好,谢谢你的回复。它是在一个单独的回购协议中,它是一个独立的html文件。从操作电缆的角度来看,流程是完全不同的。看这个视频。你不应该在html文件中编写socket函数。hi@Vishal im使用html文件订阅和使用web socket中的数据,而不是实现它。很高兴你找到了它。你在哪里编写了这个js?我是说在哪个文件里?你好,谢谢你的回复。它是在一个单独的回购协议中,它是一个独立的html文件。从操作电缆的角度来看,流程是完全不同的。看这个视频。您不需要在html文件中编写socket函数。hi@Vishal im使用html文件订阅和使用web socket中的数据,而不是实现它。很高兴您找到了它。