Forum

Post a new question

Categories:

Tags:

PPV Multiple edge servers reporting

Jacques 2015-08-20 19:34:22 UTC in Paywall: WMSAuth and beyond

I've gotten PPv working with one edge that reports to the PPV handler. I need to track when a connection ends, so I look at what connections are missing from the ppv handler incoming request and thus derive what connections have been closed.

This works great if it is only 1 server, however, when there is more edge servers, the logic breaks down because a connection is only made to one server, thus, the connection is missing from others and the "connection ended" logic is triggered.

How can I handle this situation nicely?

Andrey Goncharov 2015-08-20 22:57:02 UTC

Hello Jacques,

You can track each server's connections by the ID parameter in request. It's unique for each server.

Jacques 2015-08-24 15:29:55 UTC

Great. Thanks.

Another question. In the request '{"id":"f4343d48-2b63-4d42-8a2e-98f25ace0688","ip":"196.210.32.75","sessionid":"368388965","delta":10405}', I'm seeing a sessionid. Can that be passed to kill a specific session?

The reason for the question is... We only want to limit a viewer to one stream, but if they take the generated rtmp url and opens it using something like VLC within the specified timeframe, I just want to kill the new session, but it has the same id, so if I kill using the id (and not sessionid) I'll kill both streams.

Andrey Goncharov 2015-08-25 03:03:15 UTC

Jaques,

Blocking specific session isn't an effective approach and therefore isn't implemented. Your viewer can use your RTMP url accompanied with existing session number and your PPV handler can only detect that by increased amount of traffic consumed by that viewer.
Also, you don't have a reliable way to identify, whether session is initiated by web player or VLC, you can only guess that by requests order.

I would suggest you to enirely block suspicious viewer in order to guarantee that particular viewer can open your stream only with single player instance.

Post a reply



This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.