Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 5 of 5
  1. #1
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,535

    Radio & Touch protocol

    Hi - I know I have a similar question in the past and I'll look into the server code, but does somebody have a hint on how the Radio & Touch (I assume the Jive-based devices) get their metadata from LMS. I'm trying to find a better way to get these for my bridges. currentrly I'm doign query through the CLI and I'm wondering if there is not anything better to do. I'm not happy with certain mutex it forces me to use and the resulting latencies. Things would be iether if data where just push from LSM instead and I was hopping it's the case for Touch/Radio

    Thanks
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  2. #2
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,872

    Radio & Touch protocol

    > Hi - I know I have a similar question in the past and I'll look into the
    > server code, but does somebody have a hint on how the Radio & Touch (I
    > assume the Jive-based devices) get their metadata from LMS.


    They're using cometd to connect persistently to LMS and subscribe to
    stuff like status, serverstatus etc.

    --

    Michael

  3. #3
    Senior Member ralphy's Avatar
    Join Date
    Jan 2006
    Location
    Canada
    Posts
    1,858
    The Player.lua and SlimServer.lua files might be a helpful place to start.

    https://github.com/ralph-irving/sque...are/jive/slim/
    Ralphy

    1-Touch, 5-Classics, 3-Booms, 1-UE Radio
    Squeezebox client builds donations always appreciated.

  4. #4
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,535
    Quote Originally Posted by mherger View Post
    > Hi - I know I have a similar question in the past and I'll look into the
    > server code, but does somebody have a hint on how the Radio & Touch (I
    > assume the Jive-based devices) get their metadata from LMS.


    They're using cometd to connect persistently to LMS and subscribe to
    stuff like status, serverstatus etc.

    --

    Michael
    Quote Originally Posted by ralphy View Post
    The Player.lua and SlimServer.lua files might be a helpful place to start.

    https://github.com/ralph-irving/sque...are/jive/slim/
    Thanks - I’ve never used CometD and I’m not familiar with LUA, but I can learn. One question though in term of architecture: CometD is based on long polling and the payload in LMS is JSON, right? The long polling means that the metadata information will arrive asynchronously from the slimproto request to play I assume. In UPnP, such metadata must be sent together with the play request, they can not be updated after so I’d need to re-synchronize both and have the slimproto request queued and waiting for the status before I can send anything to te player. Is this a correct assumption?
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  5. #5
    Senior Member pippin's Avatar
    Join Date
    Oct 2007
    Location
    Berlin
    Posts
    14,309
    You can use both long polling or a permanent stream for the connection.
    Some old SBS versions won’t support long polling (before 7.5.4, I believe).

    All communication protocols between LMS and a client are somewhat asynchronous although each command you send over JSON/RPC (not cometd) should be acknowledged. So if you need a synchronous reply that would be the way to go, cometd is especially relevant if you want to subscribe to asynchronous events.

    All of this is asynchronous from SlimProto, some updates can be significantly delayed. Volume changes, for example, get accumulated on the server side and cometd might only send a status update up to a second after the change has been indicated over SlimProto.
    ---
    learn more about iPeng, the iPhone and iPad remote for the Squeezebox and
    Logitech UE Smart Radio as well as iPeng Party, the free Party-App,
    at penguinlovesmusic.com
    New: iPeng 9, the Universal App for iPhone, iPad and Apple Watch

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •