我创建了一个聊天室,使用了像这样的Opentok:
room.rb
模型中的
require 'opentok'
def config_opentok
@opentok ||= OpenTok::OpenTok.new Rails.application.secrets.open_tok_api_key, Rails.application.secrets.open_tok_secret
end
def set_opentok_params
session = config_opentok.create_session
self.session_id = session.session_id
self.opentok_token = session.generate_token({
expire_time: Time.now.to_i + 30.days
})
end
效果很好,但有时我收到了这个错误:
OpenTok::OpenTokError: Failed to connect to OpenTok. Response code: execution expired
我该如何解决?
感谢。
答案 0 :(得分:1)
def config_opentok
tries = 3
begin
@opentok = OpenTok::OpenTok.new api_key, api_secret
logger.debug "opentok connected."
rescue Errno::ETIMEDOUT => e
log.error e
tries -= 1
if tries > 0
logger.debug "retrying opentok.new..."
retry
else
logger.debug "opentok.new timed out..."
puts "ERROR: #{e.message}"
end
end
end
这对我有用。另见:Cleanly Retrying Blocks of Code After an Exception in Ruby