huhuhu
huhuhu

Reputation: 199

Failed to connect to OpenTok

I created a Room chat, used Opentok like this:

in room.rb model

 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

It worked well but sometimes I got this error:

OpenTok::OpenTokError: Failed to connect to OpenTok. Response code: execution expired

How can I fix it?

Thanks.

Upvotes: 2

Views: 1248

Answers (1)

Cleverlemming
Cleverlemming

Reputation: 1370

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

This worked for me. See also: Cleanly Retrying Blocks of Code After an Exception in Ruby

Upvotes: 1

Related Questions