GabZach / ArtSaver

Screensaver for beautiful pictures on the Mac
4 stars 0 forks source link

Design Authenticated control channel for status and command information #2

Open simsong opened 4 years ago

simsong commented 4 years ago

ArtSaver can operate a local server to allow apps running on cell phones or on other macs to determine the image currently displayed and to receive manipulation commands. This could be used, for example, to correct the rotation of a picture that displayed, or to immediately suppress the display of pictures that have inappropriate content that were mistakingly included in the distribution. This could also be used to blank a display. In this way, ArtSaver could be displayed at a large public gathering and controlled by a cell phone.

The control channel should support authentication.

Options for the design include running a local server and using Apple's Rendezvous (Zeroconf) service.

simsong commented 4 years ago

I can think of three approaches for communicating with the screen saver from a cell phone:

  1. The screen saver runs an embedded web server and that's used for control. (Presumably it would serve HTML pages for GUI and have a REST-based RPC system for commands.)

  2. The screen saver Apple's Bonjour (zeroconf) framework. This might make it easier to get ArtSaver accepted into the AppStore, but it would make the client a bit harder to develop. I'm not a wizard on ZeroConf, but I found this O'Reilly article about it: https://www.oreilly.com/library/view/zero-configuration-networking/0596101007/ch01.html

  3. There is a rendezvous server that is polled by ArtSaver and polled by the client on the cell phone. This would be useful if they are on different networks.

I guess that we should actually separate out the protocol from the communications mechanism.