Не удалось подключиться к OpenTok

Я создал чат Room, использовал 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

Как я могу это исправить?

Спасибо.


person huhuhu    schedule 16.07.2015    source источник
comment
Я не уверен, что понимаю, как это должно работать. Метод config_opentok не возвращает экземпляр OpenTok, он присваивает его переменной экземпляра @opentok. Можете ли вы перепроверить свой фрагмент кода?   -  person Ankur    schedule 27.07.2015
comment
@user3621476 user3621476 ты понял проблему? У меня похожая проблема. Спасибо.   -  person montrealmike    schedule 05.08.2015
comment
@монреальмайк . Иногда ваш сервер не может подключиться к серверу opentok. Так что. попробуйте использовать его с циклом while do или попробуйте catch . :D   -  person huhuhu    schedule 28.08.2015


Ответы (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

Это сработало для меня. См. также: Чистый повтор блоков кода после исключения в Ruby

person Cleverlemming    schedule 07.11.2015