Code Monkey home page Code Monkey logo

chromecastwebapp's Introduction

Chromecastwebapp

The purpose of this repo is to better understand the requirements that a webapp must meet in order to connect to a Google Chromecast. Specifically, in regards to protocol (http/https), hostname/ip, network interface (loopback vs physical), point of dns resolution (local, intranet, public).


Build docker image

make image

Run docker container

make run

This will bind to all interfaces on port 80


Tests

protocol (http/https), network interface (loopback vs physical), hostname/ip, point of dns resolution (local, intranet, public), and with/without legitimate TLS certificates.

# Tested URL Network Interface DNS resolution Resolved IP Results
1 http://127.0.0.1 loopback N/A 127.0.0.1 Success
2 http://127.0.0.2 loopback N/A 127.0.0.2 Success
3 http://10.0.0.2 physical N/A 10.0.0.2 Failed
4 http://localhost loopback local 127.0.0.1 Success
5 http://localhost physical local 10.0.0.2 Success
6 http://localhost-127-0-0-1 loopback local 127.0.0.1 Failed
7 http://localhost-127-0-0-2 loopback local 127.0.0.2 Failed
8 https://chromecastwebapp.jeffguymon.com/ physical public (hidden) Success
9 https://chromecastwebapp.jeffguymon.com/ physical intranet 10.0.0.2 Success
10 https://chromecastwebapp.jeffguymon.com/ physical local 10.0.0.2 Success

Conclusion & Interpretation

From the above tests, I find there are 3 permitted ways to access a webapp that will not inhibit casting:

  • https://[Hostname] - Standard deployment with a legitimate TLS certificate.
  • http://[Loopback IP] - Loopback IP can be anywhere within the 127.0.0.0/8 range
  • http://localhost/ - Interestingly, if localhost locally resolves to a non-loopback ip it will still work.

Final Thoughts

This repo on tested the most basic form of casting media. I believe there is another more complicated approach inwhich a second webapp is deployed to be run ON the chromecast itself. And in such a configuration, it will likely have its own constraints for what protocols are permissible.

chromecastwebapp's People

Contributors

jeffre avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.