code: function DiscoveryServerSSDP(app) {
    app.properties[SERVER.Capabilities][THISMIDDLEWARE.CAPABILITY] = {};
    app.properties[SERVER.Capabilities][THISMIDDLEWARE.CAPABILITY][SERVER.Version] = packageVersion;
  
    //Also register as standard IOPA DISCOVERY SERVER MIDDLEWARE
    app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.DiscoveryServer] = {};
    app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.DiscoveryServer][SERVER.Version] = app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.App][SERVER.Version];
  
    this._devices = {};
    this._factory = new iopa.Factory();
    this._SSDPserver = null;
    this._HTTPserver = null;
   
    this._SSDPclient = null;
  
    app.device = app.device || {};
    app.device.register = this.register.bind(this, app.device.register || function (device) { return Promise.resolve(device); });
    app.device.unregister = this.register.bind(this, app.device.unregister || function (id) { return Promise.resolve(id); });
    
    this.ssdpApp = new iopa.App();
    this.ssdpApp.use(IopaUDP);
    this.ssdpApp.use(IopaSSDP);
    this.ssdpApp.use(IopaMessageLogger);
  
    this.ssdpApp.use(this.invoke.bind(this));
    
    this.httpApp = new iopa.App();
    this.httpApp.use(IopaTCP);
    this.httpApp.use(IopaMessageLogger);
    this.httpApp.use(IopaHTTP);
    this.httpApp.use(this.invoke.bind(this));
  }
docs: UPNP SSDP IOPA Middleware for Device Discovery Publishing
  
  @class DiscoveryServerSSDP
  @this app.properties  the IOPA AppBuilder Properties Dictionary, used to add server.capabilities
  @constructor
  @public