2016-03-31 2 views
1

Я получаю сообщение об ошибке «this.socket isdedeined» в демонстрационном примере видеоролика QuickBlox. Он работает нормально, когда я запускаю его локально (из локальной файловой системы), но если я интегрирую его в приложение ASP.NET MVC, которое работает на локальном IIS Espress (Visual Studio 2015), я становлюсь ниже ошибки в окне консоли Firefox, когда я нажимаю "Пуск вызов" и принять для обмена аудио/видео deviec СМИ:QuickBlox Video Chat Demo Web Sample: «this.socket undefined» после вызова стартового вызова

this.socket is undefined QB.js:8111:0 
[QBWebRTC]: _dialingCallback, answerTimeInterval: 5000 QB.js:1620:32 
TypeError: this.socket is undefined 
QB.js:8111:175 
[QBWebRTC]: _dialingCallback, answerTimeInterval: 10000 QB.js:1620:32 
TypeError: this.socket is undefined 
QB.js:8111:175 
[QBWebRTC]: _dialingCallback, answerTimeInterval: 15000 QB.js:1620:32 
TypeError: this.socket is undefined 
QB.js:8111:175 
[QBWebRTC]: _dialingCallback, answerTimeInterval: 20000 QB.js:1620:32 
TypeError: this.socket is undefined 
QB.js:8111:175 
[QBWebRTC]: _dialingCallback, answerTimeInterval: 25000 QB.js:1620:32 
TypeError: this.socket is undefined 

Здесь "QB.JS" является unminified версия QuickBlox JS SDK. Я сделал это, чтобы узнать, какой блок кода в JS SDK выбрасывает ошибку.

Документация QuickBlox гласит, что она должна быть запущена по HTTPS по соображениям безопасности, поэтому я попробовал это, включив SSL и подключив самоподписанный сертификат, но NO LUCK

Можете ли вы пролить свет на то, что происходит не так, и почему такое странное недокументированное поведение я вижу.

ПРИМЕЧАНИЕ: Это тот же образец, я скачал из GitHib (После страницы документации QuickBlox) и не менять ничего, кроме файла конфигурации, чтобы включить свой собственный «AppId/AuthKey/AuthSecrect и несколько демо-пользователи»

+0

https://github.com/QuickBlox/quickblox-javascript-sdk/issues/125 – Darya

ответ

0

В случае, если вы столкнулись с такой же убедитесь, что

вы еще не инициированного рамки QB, говоря QB.Init()

вы уже не имеете чат сессию открытой. Мое наблюдение: если у у вас есть чат чата XMPP, который открывается QB.createSession() , и вы пытаетесь создать видеоролик webrtc, он дает это странная ошибка.

В случае, если вам необходимо создать сеанс для каких-либо целей, то уничтожить его перед открытием видеосеанса как:

QB.createSession(function(res, err) 
{ 
    if(err) 
    console.log(JSON.Stringify(err)); 
else 
    //do your stuff here and once done 

QB.Destroysession(function(){ 
} 
}); 
}); 

Теперь вы можете пойти дальше и начать создавать видео сессию, и она будет работать нормально , Вы можете посмотреть сообщение GitHub здесь https://github.com/QuickBlox/quickblox-javascript-sdk/issues/125

0

Переместите свои функции видеовызова вне функции QB.createSession.

var occupantIds = []; 
QB.createSession(function(err,result){ 
    if (result) { 
      // Login, then chat.connect, then do chat stuff here, like get your occupant id's 
    }else() { 
      console.log(err); 
    } 
}); 

// Теперь сделать ваш видеовызовы материал

QB.webrtc.createNewSession(occupantIds, QB.webrtc.CallType.VIDEO); 
session.getUserMedia($scope.localMediaParams, function(err, stream) { 
    if (err){ 
     console.log(err); 
    }else{ 
     console.log('Now Make the call); 
     session.call({}, function(error) { 
      console.log(error); 
     }); 
    } 
});