public interface UpnpServiceConfiguration
This interface offers methods for retrieval of configuration data by the
Router and the Registry,
as well as other parts of the UPnP stack.
You can re-use this interface if you implement a subclass of UpnpServiceImpl or
if you create a new implementation of UpnpService.
NetworkAddressFactory createNetworkAddressFactory()
NetworkAddressFactory interface.DatagramProcessor getDatagramProcessor()
DatagramProcessor.SOAPActionProcessor getSoapActionProcessor()
SOAPActionProcessor.GENAEventProcessor getGenaEventProcessor()
GENAEventProcessor.StreamClient createStreamClient()
StreamClient interface.MulticastReceiver createMulticastReceiver(NetworkAddressFactory networkAddressFactory)
networkAddressFactory - The configured NetworkAddressFactory.MulticastReceiver interface.DatagramIO createDatagramIO(NetworkAddressFactory networkAddressFactory)
networkAddressFactory - The configured NetworkAddressFactory.DatagramIO interface.StreamServer createStreamServer(NetworkAddressFactory networkAddressFactory)
networkAddressFactory - The configured NetworkAddressFactory.StreamServer interface.Executor getMulticastReceiverExecutor()
Executor getDatagramIOExecutor()
ExecutorService getStreamServerExecutorService()
DeviceDescriptorBinder getDeviceDescriptorBinderUDA10()
DeviceDescriptorBinder for the UPnP 1.0 Device Architecture..ServiceDescriptorBinder getServiceDescriptorBinderUDA10()
ServiceDescriptorBinder for the UPnP 1.0 Device Architecture..ServiceType[] getExclusiveServiceTypes()
Return null to completely disable remote device and service discovery.
All incoming notifications and search responses will then be dropped immediately.
This is mostly useful in applications that only provide services with no (remote)
control point functionality.
Note that a discovered service type with version 2 or 3 will match an exclusive service type with version 1. UPnP services are required to be backwards compatible, version 2 is a superset of version 1, and version 3 is a superset of version 2, etc.
null return value will disable discovery!
An empty array means all services will be discovered.int getRegistryMaintenanceIntervalMillis()
int getAliveIntervalMillis()
Use this to advertise local devices at the specified interval, independent of its
DeviceIdentity.maxAgeSeconds value. Note
that this will increase network traffic.
Some control points (XBMC and other Platinum UPnP SDK based devices, OPPO-93) seem to not properly receive SSDP M-SEARCH replies sent by jUPnP, but will handle NOTIFY alive messages just fine.
0 to disableboolean isReceivedSubscriptionTimeoutIgnored()
Some control points have trouble renewing subscriptions properly; enabling this option
in conjunction with a high value for
UserConstants.DEFAULT_SUBSCRIPTION_DURATION_SECONDS
ensures that your devices will not disappear on such control points.
true if the timeout in incoming event subscriptions should be ignored
and the default value (UserConstants.DEFAULT_SUBSCRIPTION_DURATION_SECONDS)
should be used instead.Integer getRemoteDeviceMaxAgeSeconds()
This setting is useful on systems which do not support multicast networking
(Android on HTC phones, for example). On such a system you will not receive messages when a
remote device disappears from the network and you will not receive its periodic heartbeat
alive messages. Only an initial search response (UDP unicast) has been received from the
remote device, with its proposed maximum age. To avoid (early) expiration of the remote
device, you can override its maxium age with this configuration setting, ignoring the
initial maximum age sent by the device. You most likely want to return
0 in this case, so that the remote device is never expired unless you
manually remove it from the Registry. You typically remove
the device when an action or GENA subscription request to the remote device failed.
null (the default) to accept the remote device's proposed maximum age, or
0 for unlimited age, or a value in seconds.UpnpHeaders getDescriptorRetrievalHeaders(RemoteDeviceIdentity identity)
Some devices might require extra headers to recognize your control point, use this
method to set these headers. They will be used for every descriptor (XML) retrieval
HTTP request by jUPnP. See ClientInfo for
action request messages.
identity - The (so far) discovered identity of the remote device.null or extra HTTP headers.UpnpHeaders getEventSubscriptionHeaders(RemoteService service)
Some devices might require extra headers to recognize your control point, use this method to set these headers for GENA subscriptions. Note that the headers will not be applied to actual event messages, only subscribe, unsubscribe, and renewal.
null or extra HTTP headers.Executor getAsyncProtocolExecutor()
ExecutorService getSyncProtocolExecutorService()
Executor getRegistryMaintainerExecutor()
Executor getRegistryListenerExecutor()
Executor getRemoteListenerExecutor()
void shutdown()
UpnpService on shutdown, useful to e.g. shutdown thread pools.Copyright © 2023 jUPnP.org. All rights reserved.