> we would like to
> 1) limit the number of client, do you have any suggestion about this?
> 2) if system cpu usage is very high, we want to response special custom rtsp
> header.
Here’s how you can do both of these things:
1/ Download the latest version (2017.04.26) of the code; it contains a new
member function that you’ll need.
2/ Subclass “RTSPServer” and “RTSPServer::RTSPClientSession”
3/ In your subclass of “RTSPServer”, redefine the virtual function
“createNewClientSession()”, and reimplement it as follows:
ClientSession* MyRTSPServerSubclass::createNewClientSession(u_int32_t
sessionId) {
if (numClientSessions() == myLimitOnTheNumberOfClients) {
return NULL;
} else {
return new MyRTSPClientSessionSubclass(*this,
sessionId);
}
}
4/ In your subclass of "RTSPServer::RTSPClientSession”, redefine the virtual
function “handleCmd_SETUP()”, and reimplement it as follows:
void MyRTSPServerSubclass::MyRTSPClientSessionSubclass
handleCmd_SETUP(RTSPClientConnection* ourClientConnection, char const*
urlPreSuffix, char const* urlSuffix, char const* fullRequestStr) {
if (MyCPUUsageIsTooHigh) {
setRTSPResponse(ourClientConnection, "453 No
Resources”);
return;
}
// Otherwise, handle the request as usual:
RTSPServer::RTSPClientSession(ourClientConnection,
urlPreSuffix, urlSuffix, fullRequestStr);
}
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel