Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doesn't show up #1

Open
konsumer opened this issue Jan 13, 2014 · 21 comments
Open

doesn't show up #1

konsumer opened this issue Jan 13, 2014 · 21 comments

Comments

@konsumer
Copy link

I can't seem to get the plugin to list itself in chrome plugin or android apps (chromecast app, netflix, hulu, etc.) Is there another step?

@jloutsenhizer
Copy link
Owner

Hi,

Could you give a list of steps you have taken? Are the computer you're using and the android device connected to the same wifi network? Does your network support multicast? Do you have a firewall enabled on your computer? How many network interfaces does your computer have? (wireless cards/ethernet ports)

Those are just a list of questions that can help me try and figure out what is going on

@konsumer
Copy link
Author

Could you give a list of steps you have taken?

  • Installed CR-Cast from chrome store on Mac 10.8.5 (Hackintosh) Chrome 31.0.1650.63 (computer has no wifi, lan-only)
  • In CR-Cast settings, I made it look like this:
    crcast
  • Window pops up, that looks like chromecast home screen. No info about network on it.
  • Attempted to cast to it with various apps that work on real chromecast

Are the computer you're using and the android device connected to the same wifi network?

Android is on wifi that is attached through router to LAN, which my computer is attached to. Is wifi required?

Does your network support multicast?

I dunno. It's pretty standard, network apps generally work correctly.

Do you have a firewall enabled on your computer?

No. Also, I can connect with SSH & web-server from android to my computer.

How many network interfaces does your computer have? (wireless cards/ethernet ports)

Just 1 ethernet. It's a hackintosh, and I didn't bother adding a dongle, so no wifi.

@jloutsenhizer
Copy link
Owner

I haven't gotten a chance to try a setup with an ethernet connected computer and a wifi connected remote. My only guess is try stopping cr cast and starting it again. I also haven't gotten a chance to test it on Mac OS yet.

@konsumer
Copy link
Author

That didn't do it. webserver portion seems to be working well (http://localhost:8008/ssdp/device-desc.xml)

@konsumer
Copy link
Author

Did an inspect in chromecast window, and looked at console:

The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
onShowPing_ 1767697357-all_js_compiled.js:32
done onShowPing 1767697357-all_js_compiled.js:32
Unable to post message to chrome://home. Recipient has origin https://clients3.google.com.
20
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
onHidePing_ 1767697357-all_js_compiled.js:33
42
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
Unable to post message to chrome://home. Recipient has origin https://clients3.google.com.
62
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
Unable to post message to chrome://home. Recipient has origin https://clients3.google.com.
56
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
Unable to post message to chrome://home. Recipient has origin https://clients3.google.com.
62
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
Unable to post message to chrome://home. Recipient has origin https://clients3.google.com.
3
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.
 c9541b08:1
41
The page at 'https://clients3.google.com/cast/chromecast/home/v/c9541b08' was loaded over HTTPS, but displayed insecure content from 'http://localhost:8008/setup/eureka_info': this content should also be loaded over HTTPS.

@konsumer
Copy link
Author

http://localhost:8008/setup/eureka_info looks like this:

{
  "release_track": "stable-channel",
  "name": "David",
  "wpa_configured": true,
  "timezone": "America/Los_Angeles",
  "signal_level": 0
}

@konsumer
Copy link
Author

As an additional troubleshooting thing, leapcast is listed in chromecastable apps.

@jloutsenhizer
Copy link
Owner

Sorry I took so long to get back. The inspection you did is purely on the homescreen app which doesn't do anything but show info to the user about chromecast's status (and is useless on crCast). The eureka_info is normal, right now the only pieces of information that are actual real (not just filled in) are "name" and "timezone".

To get useful information about crcast you need to inspect the background.html page for it. This is easily done with the chrome apps developer tools. The issue is with the SSDP server implementation which is in js/SSDPServer.js

I don't think any relevant information is logged to the console but debugging inside the SSDPServer could yield some results. I would look to see if
SSDPServer.prototype.onReceive
is ever getting called and what it's getting called with. It will often get called with empty strings or search requests for different types of devices but the two main ones are:
urn:dial-multiscreen-org:service:dial:1 and urn:dial-multiscreen-org:device:dial:1

It could be the case that more sophisticated parsing needs to be implemented for it to work correctly. Let me know if you find anything or if you have any questions

@konsumer
Copy link
Author

I include the eureka_info, so you know that the plugin is operational, and the HttpServer stuff is functional. There is no useful info in the background.html console for CR-Cast (just a million "Webserver: GET localhost:8008/setup/eureka_info " messages.)

I also watched the background.html of the chromecast extension (it gives debug info about available displays, including a PS3 and a real chromecast.) I didn't see any onDeviceList messages from CR-Cast, so it's not responding to something it should be.

I added a console.log to the top of SSDPServer.prototype.onReceive, like this:

console.log('SSDPServer.prototype.onReceive',address,port,text);

and they look like this (a lot of them):

SSDPServer.prototype.onReceive  0  

So, port is 0, address & text is null.

@konsumer
Copy link
Author

the chrome.socket.recvFrom is getting this: {"address":"","data":{},"port":0,"resultCode":-15}

@jloutsenhizer
Copy link
Owner

So I did some research and it seems that chrome.socket.bind keeps failing. I toyed around and it seems to only fail when the port is set to 1900 (which is required for SSDP)... Something fishy is going on and unfortunately I can't get a setup configured for testing at this time

@konsumer
Copy link
Author

No prob. Thanks for your help so far. Let me know if I can help with anything (testing, making you a hackintosh vmachine, etc.)

@jloutsenhizer
Copy link
Owner

Well I'm having the same exact issue on my ubuntu machine. I'm going to try it out on windows later to see if it's happening everywhere

@konsumer
Copy link
Author

Strange. 1024 should be the lowest port for all OS's that regular users can open (so 1900 should be fine.)

Have you tried leapcast? I like your solution better, as leapcast has to open browser windows, and yours is much simpler to install and use, but it may be a good way to test what is happening.

@jloutsenhizer
Copy link
Owner

Hey I finally got a setup that lets me properly test something things as I work towards updating CR Cast for the Google Cast v2 implementation. I have discovered that the issue that is causing a lot of problems is that right now, chrome's socket implementation has no way of supporting port reuse which causes problem with other applications are using the same multicast protocols. In my case I had Plex Server installed and it had a UDP socket on port 1900. The issue is marked as started, but until that's finished this problem will linger:

https://code.google.com/p/chromium/issues/detail?id=238819

Additionally, I don't think that the new chromecast apps using google cast v2 sdk will likely be able to work until this issue is fixed, since there needs to be an implementation of mDNS which most operating systems have some kind of mDNS server enabled and running by default. So star the issue please to show interest

@konsumer
Copy link
Author

konsumer commented Feb 7, 2014

Sweet. Yes, I am also running Plex.

@jloutsenhizer
Copy link
Owner

Okay so turning that off temporarily while you turn on CR Cast should fix it. You can see if any other processes are using the needed port but running this command

netstat -lup | grep :1900

@CormacAsGaeilge
Copy link

Sorry to annoy you but I seem to be having a similar problem and I can't get it working. I have a Windows Desktop plugged in to my router via LAN and my phone cant find it on WiFi. Did you ever find a solution?

@The-MAZZTer
Copy link

Hey! foobar2000 is binding to UDP port 1900 for me, FYI to everyone. Removing the UDP Media Renderer component stops this and resolves the issue instantly.

Here is how to quickly figure out what is bound to 1900:

netstat -a -b -n

Look for a UDP 0.0.0.0:1900 line and the process name will be right beneath it. There will be red herring SSDPSRV entries which should be bound to specific IPs or IPv6 IPs.

If you have cygwin you can do:

netstat -a -b -n |grep -A1 1900

which is even nicer since you can output the program name.

Sadly, I then encounter errors when trying to connect to CR Cast from the official Android app. Oh well!

@javigarvil
Copy link

The app is not currently in Chome Store What did it happen? I would like this but I reinstalled chrome and the app doen't download and I search in the store and it is not there.

@jloutsenhizer
Copy link
Owner

I have removed it from the webstore since It only works with Youtube now and the same effect can be accomplished by going to http://www.youtube.com/tv

If you wish to install it you can download the source code from the github repository and install it as an unpacked extension

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants