> seems that even the default skin is "only" refreshed every x seconds or
> does it get notified of these server events? Sounds weird but I'm goint
That's correct, it's polling every five seconds, IIRC.
> to ask anyway: can a web page subscribe to LMS server events?
Yes, nowadays that's possible. I always wanted to add this to the
Default skin... but never did it. I think Material skin does it.
It's using long-polling: eg. the server wouldn't hang up the connection
once it has sent a response, but leaves it open, so the server can send
more data back. Once it hangs up, the browser would immediately
re-connect. That was state of the art a decade or more back :-).
Nowadays websockets are the standard way to do this kind of things. But
LMS doesn't support it, and adding support for it seems to be non-trivial.
> BTW can you recommend a documentation on the -Ext JS Library- that LMS
> uses if there is any? Haven't really had to use it before. Just curious.
> Not sure it plays a part here. Thank you.
But what you'd probably want is to look into "SqueezeJS"
(https://wiki.slimdevices.com/index.php/SqueezeJS.html), the library I
wrote on top of ExtJS to create the Default skin. The documention
obviously is mostly inexistent... but the code is your friend! The
framework defines a few events to which you can subscribe:
There's eg. `playtimeupdate`. If you subscribed to it you could update
your content whenever the playtime changes. Obviously this will suffer
from some lag in case the polling rate was too slow. But in many cases
it's good enough anyway. 'playerstatechange' or 'playlistchange' might
be of interest, too. If you search around the JS source in LMS you'll
find use cases for these you can learn from.
> does it get notified of these server events? Sounds weird but I'm goint
That's correct, it's polling every five seconds, IIRC.
> to ask anyway: can a web page subscribe to LMS server events?
Yes, nowadays that's possible. I always wanted to add this to the
Default skin... but never did it. I think Material skin does it.
It's using long-polling: eg. the server wouldn't hang up the connection
once it has sent a response, but leaves it open, so the server can send
more data back. Once it hangs up, the browser would immediately
re-connect. That was state of the art a decade or more back :-).
Nowadays websockets are the standard way to do this kind of things. But
LMS doesn't support it, and adding support for it seems to be non-trivial.
> BTW can you recommend a documentation on the -Ext JS Library- that LMS
> uses if there is any? Haven't really had to use it before. Just curious.
> Not sure it plays a part here. Thank you.
But what you'd probably want is to look into "SqueezeJS"
(https://wiki.slimdevices.com/index.php/SqueezeJS.html), the library I
wrote on top of ExtJS to create the Default skin. The documention
obviously is mostly inexistent... but the code is your friend! The
framework defines a few events to which you can subscribe:
There's eg. `playtimeupdate`. If you subscribed to it you could update
your content whenever the playtime changes. Obviously this will suffer
from some lag in case the polling rate was too slow. But in many cases
it's good enough anyway. 'playerstatechange' or 'playlistchange' might
be of interest, too. If you search around the JS source in LMS you'll
find use cases for these you can learn from.
Comment