gpt4 book ai didi

ruby - Heroku 上的 ActionController::Live(Rails4)、Pub/Sub(Redis) 不起作用

转载 作者:可可西里 更新时间:2023-11-01 11:01:33 24 4
gpt4 key购买 nike

我正在尝试在 Heroku 上使用 ActionController::Live、Pub/Sub(Redis),但它不起作用。我正在使用 Ruby2.0.0p247、Rails4、Puma。

我想这样聊天。 RailsCast( http://railscasts.com/episodes/401-actioncontroller-live?view=asciicast ),GitHub( https://github.com/railscasts/401-actioncontroller-live/tree/master/chatter-after )

我的代码是这样的。

beginner_messages_controller.rb

class BeginnerMessagesController < ApplicationController

include ActionController::Live

def index
@beginner_messages = BeginnerMessage.all.order("created_at DESC")

end

def create
response.headers["Content-Type"] = "text/javascript"
attributes = params.require(:beginner_message).permit(:body)
@beginner_message = BeginnerMessage.new(attributes)
@beginner_message.user = current_user
@beginner_message.save

json_message = @beginner_message.to_json
hash_result = JSON.parse(json_message)
hash_result[:username] = @beginner_message.user.username
hash_result[:created_at] = @beginner_message.created_at.strftime("%H:%M")
@json_result = hash_result.to_json
$redis.publish('beginner_messages.create', @json_result)
end

def events
response.headers["Content-Type"] = "text/event-stream"
redis = Redis.new
redis.psubscribe('beginner_messages.*') do |on|
on.pmessage do |pattern, event, data|
response.stream.write("event: #{event}\n")
response.stream.write("data: #{data}\n\n")
end
end
end
rescue IOError
logger.info "Stream closed"
ensure
redis.quit
response.stream.close
end

beginner_messages.js.coffee

source = new EventSource('/beginner_messages/events')
source.addEventListener 'beginner_messages.create', (e) ->
beginner_message = $.parseJSON(e.data)
$('#chat').prepend($('<li>').text("#{beginner_message.username} $ #{beginner_message.body} #{beginner_message.created_at}").css("listStyleType","none"))

在本地主机上,它可以工作,但在 Heroku 上不行。 Puma 和 Redis 正在开发 Heroku。

我确实在网上搜索过,但没有帮助。请告诉我应该怎么做。感谢您的帮助。

最佳答案

很抱歉让旧线程失效,但任何遇到此问题的人都可以在他们的终端中尝试:

$ heroku labs:启用 websockets

关于ruby - Heroku 上的 ActionController::Live(Rails4)、Pub/Sub(Redis) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19257040/

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