Howdy guys. Long time no touch base. Thought I would chime in here.
I too use LMS 7.9.X and I have 2 Bryston BDP-2s running Squeezelite as players. My music varies from 16bit-44.1KHz CD quality all the way up to 24bit-192KHz.
I've used Squeezepad as well as iPeng on the iPad. I also have a hybrid ProntoScript module I built that uses both the CLI api for notifications and then uses JSON for the command/control and library browse. My module supports everything but search. Periodically, it hangs. I think the issue is due to the fact that I use Long-running HTTP 1.1 sockets for the JSON link.
The UI pretty much looks like the Green LMS web page for browsing.
The module contains 4 pages.
Current Song/Now Playing (with jacket pic) (support zap)
Library Browse (allows drill down by letter under any category - Also supports some of the XML bases services such as Radio, Sounds, etc...)
Current Playlist (support zap) Server Statistics (Player, song, artist, genre counts)
It has evolved over the past few years. The last time I tried doing any prototyping work (almost 1 year ago), it was with Comet/Bayeux protocol which LMS supports for pseudo-asynchronous notifications. I've found it to be fairly robust but it does not give you fined-grained notifications like you get from the CLI event model.
If you want to use Comet to send commands, all you get back is a response that command was sent. Essentially, Comet gives you asynchronous notification (via server-generated timers) of Player and Server Status.