I have attached some logs below. Why does such auto disconnect and reconnect happen?
cast_receiver_framework.js:66 [140.285s] [cast.receiver.IpcChannel] Received message: {"data":"{\"reason\":\"`transport_closed`\",\"senderId\":\"0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693\",\"type\":\"`senderdisconnected`\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:66 [140.287s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:66 [140.289s] [cast.receiver.CastReceiverManager] Dispatching sender disconnected event [0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693] Reason: unknown
cast_receiver_framework.js:66 [140.292s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.debugoverlay, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.294s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.cac, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.296s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.testapp.chrome.cast, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.298s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.broadcast, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.300s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.media, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.302s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.inject, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.4:151299535132113693]
cast_receiver_framework.js:66 [140.305s] [cast.framework.Application] onSenderDisconnected
cast_receiver_framework.js:66 [141.694s] [cast.receiver.IpcChannel] Received message: {"data":"{\"senderId\":\"0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693\",\"type\":\"`senderconnected`\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:66 [141.695s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:66 [141.699s] [cast.receiver.CastReceiverManager] Dispatching CastReceiverManager sender connected event [0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.702s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.debugoverlay, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.704s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.cac, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.707s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.trialapp.chrome.cast, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.709s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.broadcast, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.712s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.media, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [141.714s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.inject, 0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:151299535132113693]
cast_receiver_framework.js:66 [142.496s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"GET_STATUS\",\"requestId\":174390150}","namespace":"urn:x-cast:com.google.cast.media","senderId":"0c131ea4-1bf8-5d01-4628-87b5e61bfb65.9:sender-gf9htjf8syr5"}
cast_receiver_framework.js:66 [142.498s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
There are many reason disconnects can happen. Typically, the receiver isn't responding fast enough, then the heartbeat signal won't arrive at the sender which will then force the receiver to close and disconnect. It could also be local networking issues, but for any transient networking issues, the senders will automatically reconnect to the receiver.
Related
I just set a websocket connection, and I want to send a message from browser to server.
I used connect() method to send message. But I don't know how to consume it at server-side. Here is what I have done at client side.
var socket = new SockJS('http://localhost:8080/websocket/test);
var message = 'A message to send';
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
stompClient.send('/app/hello',{},message);
I expected to get the message sent in the server console and store it in an object.
I've got the following testing script (executed with node, real client is a browser, result is the same):
const SockJS = require('sockjs-client');
const webstomp = require('webstomp-client');
let sock = new SockJS(/*INSERT_URL_HERE*/);
let stomp = webstomp.over(sock, {
heartbeat: false,
});
stomp.connect({}, function() {
console.log('connected');
}, function() {
console.log('disconnected');
});
Versions in use:
Spring Boot - 1.5.3
Spring Cloud Netflix - 1.3.1
Nginx - 1.11
RabbitMQ - 3.6.9
To exclude parts of our infrastructure (Like NGINX as Proxy to route subdomains etc.) being the root of evil, I tried connecting to the Spring based Stomp Broker Relay (using RabbitMQ as real Broker) directly, via the NGINX Proxy and through Zuul.
The first two variants work as intended, but the third one (Using Zuul as Gateway with the ResourceServer annotation) fails. Increasing the timeouts didn't help, as the problem seems to reside in the "handshake". This is what I could get from the client side logs so far (Log for the first 2 variants, everything works fine, even webstomp could be established):
sockjs-client:main using url http://domain.tld/stomp +0ms
sockjs-client:utils:url same http://domain.tld/stomp http://localhost/ false +4ms
sockjs-client:info-receiver http://domain.tld/stomp +3ms
Opening Web Socket...
sockjs-client:info-receiver doXhr http://domain.tld/stomp/info +5ms
sockjs-client:driver:xhr GET http://domain.tld/stomp/info undefined +1ms
sockjs-client:driver:xhr data {"entropy":394670331,"origins":["*:*"],"cookie_needed":true,"websocket":false} +100ms
sockjs-client:driver:xhr end +2ms
sockjs-client:info-receiver finish { entropy: 394670331,
origins: [ '*:*' ],
cookie_needed: true,
websocket: false } 103 +1ms
sockjs-client:info-receiver _cleanup +5ms
sockjs-client:main _receiveInfo 103 +1ms
sockjs-client:main info { entropy: 394670331,
origins: [ '*:*' ],
cookie_needed: true,
websocket: false,
nullOrigin: false,
sameOrigin: false,
sameScheme: true } +1ms
sockjs-client:utils:transport disabled from server websocket +0ms
sockjs-client:utils:transport enabled xhr-streaming +1ms
sockjs-client:utils:transport disabled xdr-streaming +0ms
sockjs-client:utils:transport enabled eventsource +0ms
sockjs-client:utils:transport disabled iframe-eventsource +0ms
sockjs-client:utils:transport disabled htmlfile +1ms
sockjs-client:utils:transport disabled iframe-htmlfile +0ms
sockjs-client:utils:transport enabled xhr-polling +0ms
sockjs-client:utils:transport disabled xdr-polling +0ms
sockjs-client:utils:transport disabled iframe-xhr-polling +0ms
sockjs-client:utils:transport disabled jsonp-polling +0ms
sockjs-client:main 3 enabled transports +0ms
sockjs-client:main attempt xhr-streaming +0ms
sockjs-client:main using timeout 824 +0ms
sockjs-client:main transport url http://domain.tld/stomp/365/5rfribd0 +1ms
sockjs-client:sender-receiver http://domain.tld/stomp/365/5rfribd0/xhr_streaming +0ms
sockjs-client:buffered-sender http://domain.tld/stomp/365/5rfribd0 +1ms
sockjs-client:polling http://domain.tld/stomp/365/5rfribd0/xhr_streaming +0ms
sockjs-client:polling _scheduleReceiver +2ms
sockjs-client:receiver:xhr http://domain.tld/stomp/365/5rfribd0/xhr_streaming +0ms
sockjs-client:driver:xhr POST http://domain.tld/stomp/365/5rfribd0/xhr_streaming null +1ms
sockjs-client:driver:xhr data hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+60ms
sockjs-client:receiver:xhr _chunkHandler 200 +0ms
sockjs-client:receiver:xhr message hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +0ms
sockjs-client:polling message hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +0ms
sockjs-client:sender-receiver poll message hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +1ms
sockjs-client:main _transportMessage hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +0ms
sockjs-client:main heartbeat undefined +5ms
sockjs-client:driver:xhr data o
+0ms
sockjs-client:receiver:xhr _chunkHandler 200 +0ms
sockjs-client:receiver:xhr message o +0ms
sockjs-client:polling message o +0ms
sockjs-client:sender-receiver poll message o +2ms
sockjs-client:main _transportMessage o +0ms
sockjs-client:main _open xhr-streaming 0 +1ms
Web Socket Opened...
>>> CONNECT
accept-version:1.2,1.1,1.0
heart-beat:0,0
>>> length 110
sockjs-client:buffered-sender send "CONNECT\naccept-version:1.2,1.1,1.0\nheart-beat:0,0\n\n\u0000" +2ms
sockjs-client:buffered-sender sendSchedule 1 +0ms
sockjs-client:ajax-based create ajax sender http://domain.tld/stomp/365/5rfribd0 ["CONNECT\naccept-version:1.2,1.1,1.0\nheart-beat:0,0\n\n\u0000"] +0ms
sockjs-client:driver:xhr POST http://domain.tld/stomp/365/5rfribd0/xhr_send ["CONNECT\naccept-version:1.2,1.1,1.0\nheart-beat:0,0\n\n\u0000"] +0ms
sockjs-client:main connected xhr-streaming +2ms
sockjs-client:driver:xhr end +111ms
sockjs-client:ajax-based finish 204 +0ms
sockjs-client:buffered-sender sendScheduleWait +1ms
sockjs-client:buffered-sender timeout +26ms
sockjs-client:buffered-sender sendSchedule 0 +0ms
sockjs-client:driver:xhr data a["CONNECTED\nserver:RabbitMQ/3.6.9\nsession:session--67Xn59asIOtXSwEHL4NZQ\nheart-beat:0,0\nversion:1.2\n\n\u0000"]
+186ms
sockjs-client:receiver:xhr _chunkHandler 200 +1ms
sockjs-client:receiver:xhr message a["CONNECTED\nserver:RabbitMQ/3.6.9\nsession:session--67Xn59asIOtXSwEHL4NZQ\nheart-beat:0,0\nversion:1.2\n\n\u0000"] +0ms
sockjs-client:polling message a["CONNECTED\nserver:RabbitMQ/3.6.9\nsession:session--67Xn59asIOtXSwEHL4NZQ\nheart-beat:0,0\nversion:1.2\n\n\u0000"] +0ms
sockjs-client:sender-receiver poll message a["CONNECTED\nserver:RabbitMQ/3.6.9\nsession:session--67Xn59asIOtXSwEHL4NZQ\nheart-beat:0,0\nversion:1.2\n\n\u0000"] +0ms
sockjs-client:main _transportMessage a["CONNECTED\nserver:RabbitMQ/3.6.9\nsession:session--67Xn59asIOtXSwEHL4NZQ\nheart-beat:0,0\nversion:1.2\n\n\u0000"] +0ms
sockjs-client:main message xhr-streaming CONNECTED
server:RabbitMQ/3.6.9
session:session--67Xn59asIOtXSwEHL4NZQ
heart-beat:0,0
version:1.2
+0ms
<<< CONNECTED
server:RabbitMQ/3.6.9
session:session--67Xn59asIOtXSwEHL4NZQ
heart-beat:0,0
version:1.2
connected to server RabbitMQ/3.6.9
connected
sockjs-client:driver:xhr data a["\n"]
+4ms
sockjs-client:receiver:xhr _chunkHandler 200 +0ms
sockjs-client:receiver:xhr message a["\n"] +0ms
sockjs-client:polling message a["\n"] +0ms
sockjs-client:sender-receiver poll message a["\n"] +0ms
sockjs-client:main _transportMessage a["\n"] +0ms
sockjs-client:main message xhr-streaming
+0ms
<<< PONG
But when using Zuul, the following happens (the "Handshake" request fails by timing out):
sockjs-client:main using url http://domain.tld/stomp +0ms
sockjs-client:utils:url same http://domain.tld/stomp http://localhost/ false +4ms
sockjs-client:info-receiver http://domain.tld/stomp +3ms
Opening Web Socket...
sockjs-client:info-receiver doXhr http://domain.tld/stomp/info +8ms
sockjs-client:driver:xhr GET http://domain.tld/stomp/info undefined +1ms
sockjs-client:driver:xhr data {"entropy":886967672,"origins":["*:*"],"cookie_needed":true,"websocket":false} +280ms
sockjs-client:driver:xhr end +3ms
sockjs-client:info-receiver finish { entropy: 886967672,
origins: [ '*:*' ],
cookie_needed: true,
websocket: false } 284 +1ms
sockjs-client:info-receiver _cleanup +4ms
sockjs-client:main _receiveInfo 284 +1ms
sockjs-client:main info { entropy: 886967672,
origins: [ '*:*' ],
cookie_needed: true,
websocket: false,
nullOrigin: false,
sameOrigin: false,
sameScheme: false } +1ms
sockjs-client:utils:transport disabled from server websocket +2ms
sockjs-client:utils:transport enabled xhr-streaming +1ms
sockjs-client:utils:transport disabled xdr-streaming +0ms
sockjs-client:utils:transport enabled eventsource +0ms
sockjs-client:utils:transport disabled iframe-eventsource +1ms
sockjs-client:utils:transport disabled htmlfile +0ms
sockjs-client:utils:transport disabled iframe-htmlfile +0ms
sockjs-client:utils:transport enabled xhr-polling +0ms
sockjs-client:utils:transport disabled xdr-polling +0ms
sockjs-client:utils:transport disabled iframe-xhr-polling +1ms
sockjs-client:utils:transport disabled jsonp-polling +0ms
sockjs-client:main 3 enabled transports +0ms
sockjs-client:main attempt xhr-streaming +6ms
sockjs-client:main using timeout 2272 +0ms
sockjs-client:main transport url http://domain.tld/stomp/490/5sugacsu +0ms
sockjs-client:sender-receiver http://domain.tld/stomp/490/5sugacsu/xhr_streaming +1ms
sockjs-client:buffered-sender http://domain.tld/stomp/490/5sugacsu +0ms
sockjs-client:polling http://domain.tld/stomp/490/5sugacsu/xhr_streaming +0ms
sockjs-client:polling _scheduleReceiver +0ms
sockjs-client:receiver:xhr http://domain.tld/stomp/490/5sugacsu/xhr_streaming +0ms
sockjs-client:driver:xhr POST http://domain.tld/stomp/490/5sugacsu/xhr_streaming null +1ms
sockjs-client:main _transportTimeout +2s
sockjs-client:main _transportClose undefined 2007 Transport timed out +0ms
sockjs-client:main attempt eventsource +0ms
sockjs-client:main using timeout 2272 +1ms
sockjs-client:main transport url http://domain.tld/stomp/490/s50jl3qh +1ms
sockjs-client:sender-receiver http://domain.tld/stomp/490/s50jl3qh/eventsource +0ms
sockjs-client:buffered-sender http://domain.tld/stomp/490/s50jl3qh +0ms
sockjs-client:polling http://domain.tld/stomp/490/s50jl3qh/eventsource +0ms
sockjs-client:polling _scheduleReceiver +1ms
sockjs-client:receiver:eventsource http://domain.tld/stomp/490/s50jl3qh/eventsource +0ms
sockjs-client:receiver:eventsource error 0 Event { type: 'error' } +28ms
sockjs-client:receiver:eventsource cleanup +1ms
sockjs-client:receiver:eventsource close network +0ms
sockjs-client:polling close null network undefined +202ms
sockjs-client:polling _scheduleReceiver +0ms
I hope anyone has an idea to solve this. It seems like the sockjs response isn't returned by Zuul or something in this direction. Even using Trace on serverside didn't show up any errors...
The gateway itself is a simple setup with #SpringBootApplication, #EnableZuulProxy, #EnableResourceServer and this configuration:
# increase the timeout of the proxy
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
ConnectTimeout: 3000
ReadTimeout: 60000
zuul:
host:
connect-timeout-millis: 3000
socket-timeout-millis: 60000
# We don't want to automatically register all service available on Eureka
ignored-services: "*"
retryable: true
# Default is "Cookie,Set-Cookie,Authorization", but we want to forward the Bearer Token
sensitive-headers: Cookie,Set-Cookie
routes:
stomp:
path: /stomp/**
serviceId: stomp
strip-prefix: true
Assuming that you are having a micro-services architecture because you are already using Zuul as API proxy (gateway). For micro-services, I would suggest to have a separate service for web socket, having it's independent port and independent configurations.
you can have whatever security implementation done in this service to secure your Web socket connection. Handling socket with zuul is sort of impossible, because it is just a proxy, it routes requests and response, but not very great solution for sockets.
I have an issue with casting some third party audio streams. I have relied heavily on https://developers.google.com/cast/docs/player and followed those instructions on how to create a custom receiver for playing the streams.
After just a second or so after starting the stream (I don't get any sound) the Cast devices freezes and they stop responding to debug via Chrome and they don't react to stopping the Cast session. Often they are so locked that even issuing a reboot via the Home app doesn't work; I have to physically disconnect the power.
It's the same behaviour on Chromecast v2 (1.22.79313), Chromecast Ultra (1.22.78017) and Google Home (1.22.78295).
What could the cause of this freeze be? Is this caused by some very broken streams? Is it a known issue? Are there any workarounds? Shouldn't one expect the Cast devices to handle this and give some error message and not crash like this?
This is the log I get from the Chrome Developer Tools before the connection is reset:
cast_receiver.js:67 [ 0.268s] [cast.receiver.IpcChannel] Opening platform websocket
cast_receiver.js:67 [ 0.292s] [cast.receiver.CastReceiverManager] Version: 2.0.0.0049
cast_receiver.js:67 [ 0.305s] [cast.receiver.MediaManager] Using default Player
cast_receiver.js:67 [ 0.314s] [cast.receiver.IpcChannel] Opening message bus websocket
cast_receiver.js:67 [ 0.322s] [cast.receiver.IpcChannel] IpcChannel opened
cast_receiver.js:67 [ 0.326s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver.js:67 [ 0.333s] [cast.receiver.CastReceiverManager] Underlying message bus is open
[...]
media_player.js:25 [ 0.628s] [cast.player.api.Player] Version: 1.0.0.40
[...]
media_player.js:25 [ 6.682s] [cast.player.api.Player] load
media_player.js:25 [ 6.707s] [goog.net.XhrIo] Opening Xhr [GET http://thirdpartyserver.example.com/playlist.m3u8 -1]
media_player.js:25 [ 6.721s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://thirdpartyserver.example.com/playlist.m3u8 -1]
media_player.js:25 [ 6.725s] [goog.net.XhrIo] Sending request [GET http://thirdpartyserver.example.com/playlist.m3u8 -1]
media_player.js:51 Mixed Content: The page at 'https://example.com/custom_receiver.html?debug=true' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://thirdpartyserver.example.com/playlist.m3u8'. This content should also be served over HTTPS.
media_player.js:25 [ 6.735s] [cast.player.core.MediaSourceManager] open
media_player.js:25 [ 6.923s] [goog.net.XhrIo] Request complete [GET http://thirdpartyserver.example.com/playlist.m3u8 200]
media_player.js:25 [ 6.975s] [cast.player.core.QualityManager] 0: initial 82625
media_player.js:25 [ 6.986s] [cast.player.hls.Playlist] update: http://thirdpartyserver.example.com/chunklist_w941582493.m3u8
media_player.js:25 [ 6.993s] [goog.net.XhrIo] Opening Xhr [GET http://thirdpartyserver.example.com/chunklist_w941582493.m3u8 -1]
media_player.js:25 [ 6.999s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://thirdpartyserver.example.com/chunklist_w941582493.m3u8 -1]
media_player.js:25 [ 7.004s] [goog.net.XhrIo] Sending request [GET http://thirdpartyserver.example.com/chunklist_w941582493.m3u8 -1]
media_player.js:51 Mixed Content: The page at 'https://example.com/custom_receiver.html?debug=true' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://thirdpartyserver.example.com/chunklist_w941582493.m3u8'. This content should also be served over HTTPS.
media_player.js:25 [ 7.127s] [goog.net.XhrIo] Request complete [GET http://thirdpartyserver.example.com/chunklist_w941582493.m3u8 200]
media_player.js:25 [ 7.140s] [cast.player.hls.Playlist] update in: 3000
media_player.js:25 [ 7.161s] [cast.player.core.SegmentManager] 0: seek success 0
media_player.js:25 [ 7.169s] [goog.net.XhrIo] Opening Xhr [GET http://thirdpartyserver.example.com/media_w941582493_4220443.aac -1]
media_player.js:25 [ 7.174s] [goog.net.XhrIo] Will abort after 10000ms if incomplete, xhr2 false [GET http://thirdpartyserver.example.com/media_w941582493_4220443.aac -1]
media_player.js:25 [ 7.180s] [goog.net.XhrIo] Sending request [GET http://thirdpartyserver.example.com/media_w941582493_4220443.aac -1]
media_player.js:51 Mixed Content: The page at 'https://example.com/custom_receiver.html?debug=true' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://thirdpartyserver.example.com/media_w941582493_4220443.aac'. This content should also be served over HTTPS.
media_player.js:25 [ 7.311s] [goog.net.XhrIo] Request complete [GET http://thirdpartyserver.example.com/media_w941582493_4220443.aac 200]
media_player.js:25 [ 7.322s] [cast.player.core.QualityManager] 0: current=1018961.04, average=1444314.43
media_player.js:25 [ 7.330s] [cast.player.core.SegmentManager] 0: process segment
media_player.js:25 [ 7.338s] [cast.player.hls.Adaptation] process segment
media_player.js:25 [ 7.357s] [cast.player.core.SegmentManager] 0: segment processed
media_player.js:25 [ 7.363s] [cast.player.core.SourceBufferManager] 0: queue append
media_player.js:25 [ 7.382s] [goog.net.XhrIo] Opening Xhr [GET http://thirdpartyserver.example.com/media_w941582493_4220444.aac -1]
media_player.js:25 [ 7.387s] [goog.net.XhrIo] Will abort after 10000ms if incomplete, xhr2 false [GET http://thirdpartyserver.example.com/media_w941582493_4220444.aac -1]
media_player.js:25 [ 7.392s] [goog.net.XhrIo] Sending request [GET http://thirdpartyserver.example.com/media_w941582493_4220444.aac -1]
media_player.js:51 Mixed Content: The page at 'https://example.com/custom_receiver.html?debug=true' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://thirdpartyserver.example.com/media_w941582493_4220444.aac'. This content should also be served over HTTPS.
media_player.js:25 [ 7.515s] [goog.net.XhrIo] Request complete [GET http://thirdpartyserver.example.com/media_w941582493_4220444.aac 200]
media_player.js:25 [ 7.521s] [cast.player.core.QualityManager] 0: current=1113553.96, average=1179706.05
media_player.js:25 [ 7.528s] [cast.player.core.SegmentManager] 0: process segment
media_player.js:25 [ 7.533s] [cast.player.hls.Adaptation] process segment
Update - more info:
The response headers for that first request (playlist.m3u8) are as follows:
Accept-Ranges:bytes
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type, User-Agent, If-Modified-Since, Cache-Control, Range
Access-Control-Allow-Methods:OPTIONS, GET, POST, HEAD
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Date, Server, Content-Type, Content-Length
Cache-Control:no-cache
Content-Length:105
Content-Type:application/vnd.apple.mpegurl
Date:Tue, 21 Mar 2017 13:44:37 GMT
Server:WowzaStreamingEngine/4.5.0
The response body for that first request (playlist.m3u8) is as follows:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=80053,CODECS="mp4a.40.2"
chunklist_w941582493.m3u8
The response headers for that second request (chunklist_w941582493.m3u8) are as follows:
Accept-Ranges:bytes
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type, User-Agent, If-Modified-Since, Cache-Control, Range
Access-Control-Allow-Methods:OPTIONS, GET, POST, HEAD
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Date, Server, Content-Type, Content-Length
Cache-Control:no-cache
Content-Length:213
Content-Type:application/vnd.apple.mpegurl
Date:Tue, 21 Mar 2017 13:44:37 GMT
Server:WowzaStreamingEngine/4.5.0
The response body for that second request (chunklist_w941582493.m3u8) is typical something as follows:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:4272014
#EXTINF:1.95,
media_w1552860397_4272014.aac
#EXTINF:2.09,
media_w1552860397_4272015.aac
#EXTINF:1.95,
media_w1552860397_4272016.aac
The response headers for that second request (media_w941582493_4220443.aac) are as follows:
Accept-Ranges:bytes
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type, User-Agent, If-Modified-Since, Cache-Control, Range
Access-Control-Allow-Methods:OPTIONS, GET, POST, HEAD
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Date, Server, Content-Type, Content-Length
Cache-Control:no-cache
Content-Length:19757
Content-Type:audio/x-aac
Date:Tue, 21 Mar 2017 13:44:37 GMT
Server:WowzaStreamingEngine/4.5.0
Searching the bug tracker for the Google Cast SDK I found a relevant bug report.
All I had to do was to add cast.player.api.HlsSegmentFormat.MPEG_AUDIO_ES to cast.player.api.CreateHlsStreamingProtocol(). Now the stream works just fine and the Cast devices don't crash or freeze.
I noticed that some HTTP2 clients (Firefox and nghttp) send 5 PRIORITY frames for stream 3, 5, 7, 9, 11 after http2 protocol is agreed and before they send a HEADERS frame. I am curious why? I know the meaning of PRIORITY frames, but I don't get the point of sending it, but both Firefox and nghttp do it, so there must be some reasons.
And most importantly, those streams (stream 3, 5, 7, 9, 11) are not used after PRIORITY frames according to the log.
Output information from server for Firefox is shown as follow.
$ nghttpd -d ~/Proxy 8080 key.pem cert.pem -v
Enter PEM pass phrase:
IPv4: listen 0.0.0.0:8080
IPv6: listen :::8080
[ALPN] client offers:
* h2
* spdy/3.1
* http/1.1
SSL/TLS handshake completed
The negotiated protocol: h2
[id=1] [ 18.917] send SETTINGS frame <length=6, flags=0x00, stream_id=0>
(niv=1)
[SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
[id=1] [ 18.920] recv SETTINGS frame <length=12, flags=0x00, stream_id=0>
(niv=2)
[SETTINGS_INITIAL_WINDOW_SIZE(0x04):131072]
[SETTINGS_MAX_FRAME_SIZE(0x05):16384]
[id=1] [ 18.920] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0>
(window_size_increment=12517377)
[id=1] [ 18.920] recv PRIORITY frame <length=5, flags=0x00, stream_id=3>
(dep_stream_id=0, weight=201, exclusive=0)
[id=1] [ 18.920] recv PRIORITY frame <length=5, flags=0x00, stream_id=5>
(dep_stream_id=0, weight=101, exclusive=0)
[id=1] [ 18.920] recv PRIORITY frame <length=5, flags=0x00, stream_id=7>
(dep_stream_id=0, weight=1, exclusive=0)
[id=1] [ 18.920] recv PRIORITY frame <length=5, flags=0x00, stream_id=9>
(dep_stream_id=7, weight=1, exclusive=0)
[id=1] [ 18.920] recv PRIORITY frame <length=5, flags=0x00, stream_id=11>
(dep_stream_id=3, weight=1, exclusive=0)
[id=1] [ 18.920] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[id=1] [ 18.926] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[id=1] [ 25.773] recv (stream_id=13) :method: GET
[id=1] [ 25.773] recv (stream_id=13) :path: /plaintext.txt
[id=1] [ 25.773] recv (stream_id=13) :authority: 127.0.0.1:8080
[id=1] [ 25.773] recv (stream_id=13) :scheme: https
[id=1] [ 25.773] recv (stream_id=13) user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Firefox/45.0
[id=1] [ 25.773] recv (stream_id=13) accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[id=1] [ 25.773] recv (stream_id=13) accept-language: en-US,en;q=0.5
[id=1] [ 25.773] recv (stream_id=13) accept-encoding: gzip, deflate, br
[id=1] [ 25.773] recv (stream_id=13) if-modified-since: Wed, 27 Apr 2016 13:10:07 GMT
[id=1] [ 25.773] recv HEADERS frame <length=196, flags=0x25, stream_id=13>
; END_STREAM | END_HEADERS | PRIORITY
(padlen=0, dep_stream_id=11, weight=32, exclusive=0)
; Open new stream
[id=1] [ 25.774] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=13>
(window_size_increment=12451840)
[id=1] [ 25.774] send HEADERS frame <length=42, flags=0x05, stream_id=13>
; END_STREAM | END_HEADERS
(padlen=0)
; First response header
:status: 304
server: nghttpd nghttp2/1.8.0
date: Fri, 29 Apr 2016 08:07:25 GMT
[id=1] [ 25.774] stream_id=13 closed
But Chrome does not send them, as shown below. So they are not necessary for a successful connection?
$ nghttpd -d ~/Proxy 8080 key.pem cert.pem -v
Enter PEM pass phrase:
IPv4: listen 0.0.0.0:8080
IPv6: listen :::8080
[ALPN] client offers:
* h2
* spdy/3.1
* http/1.1
SSL/TLS handshake completed
The negotiated protocol: h2
[id=1] [ 16.069] send SETTINGS frame <length=6, flags=0x00, stream_id=0>
(niv=1)
[SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
[id=1] [ 16.083] closed
[ALPN] client offers:
* h2
* spdy/3.1
* http/1.1
SSL/TLS handshake completed
The negotiated protocol: h2
[id=2] [ 16.298] send SETTINGS frame <length=6, flags=0x00, stream_id=0>
(niv=1)
[SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
[id=2] [ 16.299] closed
[ALPN] client offers:
* h2
* spdy/3.1
* http/1.1
SSL/TLS handshake completed
The negotiated protocol: h2
[id=3] [ 16.303] send SETTINGS frame <length=6, flags=0x00, stream_id=0>
(niv=1)
[SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
[id=3] [ 16.303] recv SETTINGS frame <length=12, flags=0x00, stream_id=0>
(niv=2)
[SETTINGS_MAX_CONCURRENT_STREAMS(0x03):1000]
[SETTINGS_INITIAL_WINDOW_SIZE(0x04):6291456]
[id=3] [ 16.303] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0>
(window_size_increment=15663105)
[id=3] [ 16.303] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[id=3] [ 16.303] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
; ACK
(niv=0)
[id=3] [ 16.311] recv (stream_id=1) :method: GET
[id=3] [ 16.311] recv (stream_id=1) :authority: 127.0.0.1:8080
[id=3] [ 16.311] recv (stream_id=1) :scheme: https
[id=3] [ 16.311] recv (stream_id=1) :path: /plaintext.txt
[id=3] [ 16.311] recv (stream_id=1) accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
[id=3] [ 16.311] recv (stream_id=1) upgrade-insecure-requests: 1
[id=3] [ 16.311] recv (stream_id=1) user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36
[id=3] [ 16.311] recv (stream_id=1) accept-encoding: gzip, deflate, sdch
[id=3] [ 16.311] recv (stream_id=1) accept-language: en-US,en;q=0.8
[id=3] [ 16.311] recv HEADERS frame <length=238, flags=0x25, stream_id=1
....
They are not required for a successful connection.
For the rest, I'm just guessing here. Firefox is using those streams as "virtual streams". Then it makes further real streams dependent on those virtual streams. The effect should be the creation of different priority groups, without needing to specify priorities per (real) streams.
I'm using Azure Media Services to upload, encode and encrypt videos into PlayReady smooth streaming format. I'm using the Play Ready test server located at : http://playready.directtaps.net/
During the encoding process, I'm using licenseAcquisitionUrl for PlayReady as : http://playready.directtaps.net/pr/svc/rightsmanager.asmx
All the other things are configured and set as described at : http://msdn.microsoft.com/en-us/library/dn189154.aspx
PlayReady Smooth Stream : http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest
The above stream works on : http://smf.cloudapp.net/healthmonitor (no option of setting up license acquisition url)
The above stream does not work on : http://playready.directtaps.net/pr/doc/slee/ even after setting/removing License Acquisition Url.
Also, I'm using ChromeCast to cast these streams according to the Receiver Sample : https://github.com/googlecast/CastMediaPlayerStreamingDRM
The play ready stream does not seem to work on the above google cast example, and gives a "Fatal Error: code = 1" (I guess LOAD METADATA ERROR) , even after setting/removing License Acquisition Url.
The HLS stream encrypted with PlayReady as well as the MPEG DASH stream with PlayReady do not work at all on the ChromeCast Receiver Sample.
Please help!
EDIT : Adding Logs
[ 0.306s] [cast.receiver.CastReceiverManager] Version: 2.0.0.0002
cast_receiver.js:18
### Application Loaded. Starting system. mpl.js:649
[ 0.339s] [cast.receiver.IpcChannel] Opening message bus websocket
cast_receiver.js:18
[ 0.347s] [goog.net.WebSocket] Opening the WebSocket on ws://localhost:8008/v2/ipc
cast_receiver.js:18
[ 0.498s] [goog.net.WebSocket] WebSocket opened on ws://localhost:8008/v2/ipc
cast_receiver.js:18
[ 0.512s] [cast.receiver.IpcChannel] IpcChannel opened
cast_receiver.js:18
[ 0.521s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message [urn:x-cast:com.google.cast.system, SystemSender]: {"type":"opened"}
cast_receiver.js:18
[ 0.528s] [cast.receiver.CastReceiverManager] CastReceiverManager message received: [object Object]
cast_receiver.js:18
[ 0.537s] [cast.receiver.CastReceiverManager] Underlying message bus is open
cast_receiver.js:18
[ 0.541s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"ready\",\"statusText\":\"Ready to play\",\"activeNamespaces\":[\"urn:x-cast:com.google.cast.sample.mediaplayer\",\"urn:x-cast:com.google.cast.media\"],\"version\":\"2.0.0\",\"messagesVersion\":\"1.0\"}"}
cast_receiver.js:18
[ 0.554s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"startheartbeat\",\"maxInactivity\":6000}"}
cast_receiver.js:18
[ 0.568s] [cast.receiver.IpcChannel] Received message: {"data":"{\"applicationId\":\"9E986387\",\"applicationName\":\"Custom Receiver with DRM\",\"launchingSenderId\":\"2:client-81798\",\"messagesVersion\":\"1.0\",\"sessionId\":\"5715726D-2985-E111-297B-7C6CB1A79753\",\"type\":\"ready\",\"version\":\"1.0\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver.js:18
[ 0.579s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message [urn:x-cast:com.google.cast.system, SystemSender]: {"applicationId":"9E986387","applicationName":"Custom Receiver with DRM","launchingSenderId":"2:client-81798","messagesVersion":"1.0","sessionId":"5715726D-2985-E111-297B-7C6CB1A79753","type":"ready","version":"1.0"}
cast_receiver.js:18
[ 0.581s] [cast.receiver.CastReceiverManager] CastReceiverManager message received: [object Object]
cast_receiver.js:18
[ 0.584s] [cast.receiver.CastReceiverManager] Dispatching CastReceiverManager system ready event [[object Object]]
cast_receiver.js:18
### Cast Receiver Manager is READY: {"type":"ready","C":false,"defaultPrevented":false,"Sa":true,"data":{"id":"9E986387","name":"Custom Receiver with DRM","sessionId":"5715726D-2985-E111-297B-7C6CB1A79753","namespaces":["urn:x-cast:com.google.cast.sample.mediaplayer","urn:x-cast:com.google.cast.media"],"launchingSenderId":"2:client-81798"}} mpl.js:202
[ 1.133s] [cast.receiver.IpcChannel] Received message: {"data":"{\"senderId\":\"2:client-81798\",\"type\":\"senderconnected\",\"userAgent\":\"\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver.js:18
[ 1.135s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message [urn:x-cast:com.google.cast.system, SystemSender]: {"senderId":"2:client-81798","type":"senderconnected","userAgent":""}
cast_receiver.js:18
[ 1.137s] [cast.receiver.CastReceiverManager] CastReceiverManager message received: [object Object]
cast_receiver.js:18
[ 1.139s] [cast.receiver.CastReceiverManager] Dispatching CastReceiverManager sender connected event [2:client-81798]
cast_receiver.js:18
[ 1.141s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.sample.mediaplayer, 2:client-81798]
cast_receiver.js:18
[ 1.143s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.media, 2:client-81798]
cast_receiver.js:18
### Cast Receiver Manager - Sender Connected : {"type":"senderconnected","C":false,"defaultPrevented":false,"Sa":true,"data":"2:client-81798","senderId":"2:client-81798","userAgent":""} mpl.js:215
[ 11.026s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"license\",\"value\":\"http://playready.directtaps.net/pr/svc/rightsmanager.asmx\"}","namespace":"urn:x-cast:com.google.cast.sample.mediaplayer","senderId":"2:client-81798"}
cast_receiver.js:18
[ 11.034s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message [urn:x-cast:com.google.cast.sample.mediaplayer, 2:client-81798]: {"type":"license","value":"http://playready.directtaps.net/pr/svc/rightsmanager.asmx"}
cast_receiver.js:18
### Message Bus - Media Message: {"type":"message","C":false,"defaultPrevented":false,"Sa":true,"senderId":"2:client-81798","data":"{\"type\":\"license\",\"value\":\"http://playready.directtaps.net/pr/svc/rightsmanager.asmx\"}"} mpl.js:268
### CUSTOM MESSAGE: {"type":"message","C":false,"defaultPrevented":false,"Sa":true,"senderId":"2:client-81798","data":"{\"type\":\"license\",\"value\":\"http://playready.directtaps.net/pr/svc/rightsmanager.asmx\"}"} mpl.js:271
{"type":"license","value":"http://playready.directtaps.net/pr/svc/rightsmanager.asmx"} mpl.js:273
[ 11.056s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.sample.mediaplayer","senderId":"*:*","data":"{\"type\":\"license\",\"value\":\"http://playready.directtaps.net/pr/svc/rightsmanager.asmx\"}"}
cast_receiver.js:18
[ 12.220s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"LOAD\",\"requestId\":52887016,\"sessionId\":\"5715726D-2985-E111-297B-7C6CB1A79753\",\"media\":{\"contentId\":\"http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest\",\"streamType\":\"buffered\",\"contentType\":\"video/mp4\"},\"autoplay\":true,\"currentTime\":0,\"customData\":{\"payload\":{\"title\":\"Big Buck Bunny\"}}}","namespace":"urn:x-cast:com.google.cast.media","senderId":"2:client-81798"}
cast_receiver.js:18
[ 12.225s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message [urn:x-cast:com.google.cast.media, 2:client-81798]: {"type":"LOAD","requestId":52887016,"sessionId":"5715726D-2985-E111-297B-7C6CB1A79753","media":{"contentId":"http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest","streamType":"buffered","contentType":"video/mp4"},"autoplay":true,"currentTime":0,"customData":{"payload":{"title":"Big Buck Bunny"}}}
cast_receiver.js:18
[ 12.231s] [cast.receiver.MediaManager] MediaManager message received [2:client-81798] {"type":"LOAD","requestId":52887016,"sessionId":"5715726D-2985-E111-297B-7C6CB1A79753","media":{"contentId":"http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest","streamType":"buffered","contentType":"video/mp4"},"autoplay":true,"currentTime":0,"customData":{"payload":{"title":"Big Buck Bunny"}}}
cast_receiver.js:18
[ 12.235s] [cast.receiver.MediaManager] Dispatching MediaManager load event
cast_receiver.js:18
### Media Manager - LOAD: {"type":"load","C":false,"defaultPrevented":false,"Sa":true,"data":{"requestId":52887016,"sessionId":"5715726D-2985-E111-297B-7C6CB1A79753","media":{"contentId":"http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest","streamType":"buffered","contentType":"video/mp4"},"autoplay":true,"currentTime":0,"customData":{"payload":{"title":"Big Buck Bunny"}}},"senderId":"2:client-81798"} mpl.js:546
##### video/mp4 mpl.js:621
### Media Protocol Identified as Smooth Streaming mpl.js:632
[ 12.094s] [cast.player.api.Player] version 0.4.0
media_player.js:23
[ 12.101s] [cast.player.api.Player] revision 6
media_player.js:23
[ 12.116s] [cast.player.api.Player] load 0
media_player.js:23
[ 12.142s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest -1]
media_player.js:23
[ 12.160s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest -1]
media_player.js:23
[ 12.166s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest -1]
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest". media_player.js:51
[ 12.196s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest 200]
media_player.js:23
[ 12.237s] [cast.player.common] Audio codecPrivateData guess: 1210
media_player.js:23
[ 12.251s] [cast.player.common] Audio codecPrivateData guess: 1210
media_player.js:23
######### MEDIA ELEMENT LOAD START mpl.js:44
[ 12.361s] [cast.player.api.Player] sourceopen
media_player.js:23
[ 12.423s] [cast.player.core.QualityManager] 0: from undefined to 1740668
media_player.js:23
[ 12.429s] [cast.player.core.SourceBufferManager] 0: abort
media_player.js:23
[ 12.467s] [cast.player.core.SourceBufferManager] 0: append
media_player.js:23
[ 12.476s] [cast.player.core.SegmentManager] 0: seek 0
media_player.js:23
[ 12.507s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=0) -1]
media_player.js:23
[ 12.515s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=0) -1]
media_player.js:23
[ 12.520s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=0) -1]
media_player.js:23
[ 12.535s] [cast.player.core.QualityManager] 1: from undefined to 93593
media_player.js:23
[ 12.544s] [cast.player.core.SourceBufferManager] 1: abort
media_player.js:23
[ 12.559s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 12.563s] [cast.player.core.SegmentManager] 1: seek 0
media_player.js:23
[ 12.576s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…64c2119/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=0) -1]
media_player.js:23
[ 12.581s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…64c2119/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=0) -1]
media_player.js:23
[ 12.585s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…64c2119/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=0) -1]
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…4c2119/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=0))". media_player.js:51
[ 12.644s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…64c2119/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=0) 200]
media_player.js:23
[ 12.648s] [cast.player.core.SegmentManager] onXhrSuccess_ 1: pending segment
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=0))". media_player.js:51
[ 12.677s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=0) 200]
media_player.js:23
[ 12.685s] [cast.player.core.SegmentManager] onXhrSuccess_ 0: pending segment
media_player.js:23
[ 12.694s] [cast.player.core.SourceBufferManager] 0: updateend
media_player.js:23
[ 12.710s] [cast.player.core.SegmentManager] onBufferReady 0: process pending
media_player.js:23
[ 12.747s] [cast.player.core.SourceBufferManager] 0: append
media_player.js:23
[ 12.763s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
[ 12.766s] [cast.player.core.SegmentManager] onBufferReady 1: process pending
media_player.js:23
[ 12.775s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 12.826s] [cast.player.core.MediaKeysManager] onNeedKey_: 1
media_player.js:23
[ 12.832s] [cast.player.core.MediaKeySession] createSession
media_player.js:23
[ 12.844s] [cast.player.core.MediaKeysManager] onNeedKey_: 2
media_player.js:23
[ 13.031s] [cast.receiver.MediaManager] Metadata loaded
cast_receiver.js:18
[ 13.046s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver.js:18
[ 13.056s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":1,\"playbackRate\":1,\"playerState\":\"BUFFERING\",\"currentTime\":0,\"supportedMediaCommands\":15,\"volume\":{\"level\":1,\"muted\":false},\"media\":{\"contentId\":\"http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c60-bed8564c2119/interview2.ism/manifest\",\"streamType\":\"buffered\",\"contentType\":\"video/mp4\",\"duration\":9.6826}}],\"requestId\":52887016}"}
cast_receiver.js:18
[ 12.889s] [cast.player.api.Player] loadedmetadata
media_player.js:23
[ 13.048s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…ed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=20020000) -1]
media_player.js:23
[ 13.057s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…ed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=20020000) -1]
media_player.js:23
[ 13.061s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…ed8564c2119/interview2.ism/QualityLevels(1740668)/Fragments(video=20020000) -1]
media_player.js:23
[ 13.087s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=20201360) -1]
media_player.js:23
[ 13.106s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=20201360) -1]
media_player.js:23
[ 13.114s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=20201360) -1]
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=20201360))". media_player.js:51
[ 13.144s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=20201360) 200]
media_player.js:23
[ 13.153s] [cast.player.core.SegmentManager] onXhrSuccess_ 1: pending segment
media_player.js:23
######### MEDIA ELEMENT DATA LOADED mpl.js:48
{} mpl.js:90
[ 13.369s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.sample.mediaplayer","senderId":"*:*","data":"{\"video_bitrates\":[1740668,1416013,889057,682029,435390]}"}
cast_receiver.js:18
[ 13.376s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.sample.mediaplayer","senderId":"*:*","data":"{\"audio_bitrates\":[53640]}"}
cast_receiver.js:18
######### MEDIA ELEMENT CAN PLAY mpl.js:116
[ 13.222s] [cast.player.api.Player] play
media_player.js:23
######### MEDIA ELEMENT PLAYING mpl.js:126
[ 13.349s] [cast.player.core.SourceBufferManager] 0: updateend
media_player.js:23
[ 13.360s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
[ 13.365s] [cast.player.core.SegmentManager] onBufferReady 1: process pending
media_player.js:23
[ 13.370s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 13.410s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=40402721) -1]
media_player.js:23
[ 13.418s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=40402721) -1]
media_player.js:23
[ 13.427s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=40402721) -1]
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=40402721))". media_player.js:51
[ 13.459s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=40402721) 200]
media_player.js:23
[ 13.463s] [cast.player.core.SegmentManager] onXhrSuccess_ 1: pending segment
media_player.js:23
[ 13.481s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
[ 13.489s] [cast.player.core.SegmentManager] onBufferReady 1: process pending
media_player.js:23
[ 13.500s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 13.535s] [cast.player.core.QualityManager] 1: bitrate 2149525.703534414
media_player.js:23
[ 13.548s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=60604081) -1]
media_player.js:23
[ 13.552s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=60604081) -1]
media_player.js:23
[ 13.569s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=60604081) -1]
media_player.js:23
[ 13.607s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=60604081))". media_player.js:51
[ 13.622s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=60604081) 200]
media_player.js:23
[ 13.633s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 13.642s] [goog.net.XhrIo] Opening Xhr [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=80805442) -1]
media_player.js:23
[ 13.646s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=80805442) -1]
media_player.js:23
[ 13.651s] [goog.net.XhrIo] Sending request [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=80805442) -1]
media_player.js:23
XHR finished loading: "http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=80805442))". media_player.js:51
[ 13.677s] [goog.net.XhrIo] Request complete [GET http://wamsstaticpoc.origin.mediaservices.windows.net/6d32a54f-ba98-4b06-8c…/interview2.ism/QualityLevels(93593)/Fragments(AAC_und_ch2_96kbps=80805442) 200]
media_player.js:23
[ 13.681s] [cast.player.core.SegmentManager] onXhrSuccess_ 1: pending segment
media_player.js:23
[ 13.690s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
[ 13.694s] [cast.player.core.SegmentManager] onBufferReady 1: process pending
media_player.js:23
[ 13.698s] [cast.player.core.SourceBufferManager] 1: append
media_player.js:23
[ 13.707s] [cast.player.core.SourceBufferManager] 1: updateend
media_player.js:23
[ 14.508s] [cast.player.core.MediaKeySession] onKeyMessage_
media_player.js:23
[ 14.519s] [goog.net.XhrIo] Opening Xhr [POST http://playready.directtaps.net/pr/svc/rightsmanager.asmx -1]
media_player.js:23
[ 14.531s] [goog.net.XhrIo] Will abort after 180000ms if incomplete, xhr2 false [POST http://playready.directtaps.net/pr/svc/rightsmanager.asmx -1]
media_player.js:23
[ 14.536s] [goog.net.XhrIo] Sending request [POST http://playready.directtaps.net/pr/svc/rightsmanager.asmx -1]
media_player.js:23
######### MEDIA ELEMENT ERROR [object Event] mpl.js:140
Uncaught TypeError: Converting circular structure to JSON mpl.js:359
[ 14.695s] [cast.player.api.Player] error
media_player.js:23
### HOST ERROR - Fatal Error: code = 1 mpl.js:611
[ 14.704s] [cast.player.api.Player] unload 0