gpt4 book ai didi

ruby-on-rails - Heroku Websocket 到自定义域

转载 作者:行者123 更新时间:2023-12-01 16:58:39 25 4
gpt4 key购买 nike

我在 Heroku 上使用 ActionCable 和 Rails。

当我在 example.herokuapp.com 时,聊天工作正常,但它会破坏我的自定义域 (example.com),因为我没有从 Web 套接字主机 (wss://example.heroku.com) 发出 cookie。 com/电缆)。

有什么办法可以指点一下吗wss://example.herokuapp.com/cable TOHeroku 上的 wss://example.com/cable?

或者,您能否解释一下如何使用 cloudflare 的 websocket 功能来解决此问题?

非常感谢。

最佳答案

当使用 websocket 工作时,我真的很喜欢使用 pusher 。它们的设置非常简单。 每天可免费发送 20 万条消息

这是heroku documentation对于推杆

1)安装gem

gem install pusher

2)安装插件

heroku addons:create pusher:sandbox

3) 设置初始化器

#config/initializers/pusher.rb
require 'pusher'

Pusher.app_id = '000000'
Pusher.key = '000000000000000000'
Pusher.secret = '00000000000000000000'
Pusher.cluster = 'xxx'
Pusher.logger = Rails.logger
Pusher.encrypted = true

一旦你有了 key ,你所需要的就是创建一个客户端(js)和一个服务器

客户端中的代码是这样的

<!DOCTYPE html>
<head>
<title>Pusher Test</title>
<script src="https://js.pusher.com/4.1/pusher.min.js"></script>
<script>

// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;

var pusher = new Pusher("#{key}", {
cluster: "#{cluster}",
encrypted: true
});

var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function(data) {
alert(data.message);
});
</script>
</head>

现在在服务器上真的很简单

require 'pusher'

pusher_client = Pusher::Client.new(
app_id: ENV[:app_id],
key: ENV[:key],
secret: ENV[:secret],
cluster: ENV[:cluster],
encrypted: true
)

pusher_client.trigger('my-channel', 'my-event', {
message: 'hello world'
})

希望这对您有所帮助

关于ruby-on-rails - Heroku Websocket 到自定义域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40965485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com