Ошибка приложения Chromecast Receiver: неожиданное отключение WebSocket: undefined

Я пытаюсь получить базовую настройку приложения Chromecast, где я могу отправить простое пользовательское сообщение из Desktop Chrome на приемник Chromecast. Устройства занесены в белый список, а источники приложений находятся по URL-адресу, указанному в процессе внесения в белый список. Кроме того, используется правильный API_ID, а пространство имен одинаково для приложений-получателей и отправителей.

Приложение приемника загружается, но сразу после этого я получаю:

[  0.230s] [goog.net.WebSocket] The WebSocket disconnected unexpectedly: undefined

Кажется, это мешает мне отправлять пользовательские сообщения в Chromecast.

Из приложения-отправителя я могу найти устройство, подключиться и запустить приложение-получатель. Я также могу правильно отключиться с помощью вызова stopActivity() отправителя.

Настройка ресивера следующая:

var receiver = new cast.receiver.Receiver(APP_ID, NAMESPACE);
var channelHandler = new cast.receiver.ChannelHandler(NAMESPACE);

channelHandler.addChannelFactory(receiver.createChannelFactory(NAMESPACE));

channelHandler.addEventListener('error', function($e){
    console.log('JAC - Error!');
});

channelHandler.addEventListener('open', function($e){
    console.log('JAC - OnOpen!');
});

channelHandler.addEventListener('message', function($e){
    console.log('JAC - Message: ' + $e.type);
});


receiver.start();

Полный журнал с устройства Chromecast (фактический appId удален):

[  0.027s] [cast.receiver.ChannelHandler] New channel factory added: MY-APP-ID to heartbeatChannelHandler
 cast_receiver.js:66
 [  0.088s] [cast.receiver.ChannelHandler] New channel factory added: receiverTest1: MY-APP-ID to receiverTest1
 cast_receiver.js:66
 [  0.094s] [cast.receiver.ConnectionService] Open connection service websocket: url=ws://localhost:8008/connection
 cast_receiver.js:66
 [  0.098s] [goog.net.WebSocket] Opening the WebSocket on ws://localhost:8008/connection
 cast_receiver.js:66
 [  0.104s] [cast.receiver.Receiver] Receiver started.
 cast_receiver.js:66
 [  0.142s] [goog.net.WebSocket] WebSocket opened on ws://localhost:8008/system/control
 cast_receiver.js:66
 [  0.153s] [cast.receiver.ChannelOverWebSocket] Dispatch OPEN event to ws://localhost:8008/system/control
 cast_receiver.js:66
 [  0.159s] [cast.receiver.Channel] Dispatch OPEN event to ws://localhost:8008/system/control
 cast_receiver.js:66
 [  0.164s] [cast.receiver.Platform] Platform channel is open: ws://localhost:8008/system/control
 cast_receiver.js:66
 [  0.208s] [goog.net.WebSocket] WebSocket opened on ws://localhost:8008/connection
 cast_receiver.js:66
 [  0.212s] [cast.receiver.ConnectionService] Got event: d
 cast_receiver.js:66
 [  0.222s] [goog.net.WebSocket] The WebSocket on ws://localhost:8008/connection closed.
 cast_receiver.js:66
 [  0.225s] [cast.receiver.ConnectionService] Got event: a
 cast_receiver.js:66
 [  0.230s] [goog.net.WebSocket] The WebSocket disconnected unexpectedly: undefined

Любая помощь в этом вопросе будет принята с благодарностью! Спасибо!


person Jake Callery    schedule 04.10.2013    source источник
comment
Я не готов предложить это как полноценный ответ, потому что я не знаю, какой тип NAMESPACE находится в вашем конструкторе Receiver, но он должен быть массивом. Если это не так, может быть, происходят странные вещи?   -  person dowski    schedule 05.10.2013
comment
Ах Бинго! Кажется, что ошибка исчезла. Вы хотите опубликовать это как ответ вместо комментария, чтобы я мог отдать вам должное?   -  person Jake Callery    schedule 05.10.2013
comment
Переместил в ответ. Спасибо!   -  person dowski    schedule 07.10.2013


Ответы (1)


Тип для NAMESPACE в конструкторе Receiver должен быть массивом. Я предполагаю, что в вашем примере кода это строка. Это может вызвать странные проблемы, которые вы видите.

person dowski    schedule 07.10.2013
comment
Хм, так что я подумал, что это тоже моя проблема, но даже после того, как я убедился, что конструктор Receiver принимает массив NAMESPACE, похоже, он не работает. Вот мой вывод консоли javascript: - person LyteSpeed; 04.11.2013