SSDPClient
SSDPClient copied to clipboard
SSDP client for Swift
SSDPClient

SSDP client for Swift using the Swift Package Manager. Works on iOS, macOS, tvOS, watchOS and Linux.
Installation
SSDPClient is available through Swift Package Manager. To install it, add the following line to your Package.swift
dependencies:
.package(url: "https://github.com/pierrickrouxel/SSDPClient.git", from: "0.2.2")
Usage
SSDPClient can be used to discover SSDP devices and services :
import SSDPClient
class ServiceDiscovery {
let client = SSDPDiscovery()
init() {
self.client.delegate = self
self.client.discoverService()
}
}
To handle the discovery implement the SSDPDiscoveryDelegate
protocol :
extension ServiceDiscovery: SSDPDiscoveryDelegate {
func ssdpDiscovery(_: SSDPDiscovery, didDiscoverService: SSDPService) {
// ...
}
}
Discovery
SSDPDiscovery
provides two instance methods to discover services :
-
discoverService(forDuration duration: TimeInterval = 10, searchTarget: String = "ssdp:all")
- Discover SSDP services for a duration. -
stop()
- Stop the discovery before the end.
Delegate
The SSDPDiscoveryDelegate
protocol defines delegate methods that you should implement when using SSDPDiscovery
discover tasks :
-
func ssdpDiscovery(_ discovery: SSDPDiscovery, didDiscoverService service: SSDPService)
- Tells the delegate a requested service has been discovered. -
func ssdpDiscovery(_ discovery: SSDPDiscovery, didFinishWithError error: Error)
- Tells the delegate that the discovery ended due to an error. -
func ssdpDiscoveryDidStart(_ discovery: SSDPDiscovery)
- Tells the delegate that the discovery has started. -
func ssdpDiscoveryDidFinish(_ discovery: SSDPDiscovery)
- Tells the delegate that the discovery has finished.
Service
SSDPService
is the discovered service. It contains the following attributes :
-
host: String
- The host of service -
location: String?
- The value ofLOCATION
header -
server: String?
- The value ofSERVER
header -
searchTarget: String?
- The value ofST
header -
uniqueServiceName: String?
- The value ofUSN
header
Test
Run test:
swift test