code: function DiscoveryClientIopaWire(app) {
    if (!app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.Udp])
      throw ("Missing Dependency: UDP Server/Middleware in Pipeline");
    
    if (!app.properties[SERVER.Capabilities][DEVICESMIDDLEWARE.CAPABILITY])
      throw ("Missing Dependency: IOPA Devices Server/Middleware in Pipeline");
  
    app.properties[SERVER.Capabilities][THISMIDDLEWARE.CAPABILITY] = {};
    app.properties[SERVER.Capabilities][THISMIDDLEWARE.CAPABILITY][SERVER.Version] = packageVersion;
  
   //Also register as standard IOPA DISCOVERY CLIENT MIDDLEWARE
    app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.DiscoveryClient] = {};
    app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.DiscoveryClient][SERVER.Version] = app.properties[SERVER.Capabilities][IOPA.CAPABILITIES.App][SERVER.Version];
  
    this.app = app;
    // this._devices = {};
    this._factory = new iopa.Factory();
   
    app.device = app.device || {};
    app.device.probe = this.probe.bind(this, app.device.probe || function(query, cb){return Promise.resolve(null);});
    app.device.resolve = this.resolve.bind(this, app.device.resolve || function(id, cb){return Promise.resolve(null);});
    
    this._client = null;
   }
docs: CoAP IOPA Middleware for Managing Server Sessions including Auto Subscribing Client Subscribe Requests
  
  @class CoAPSubscriptionClient
  @this app.properties  the IOPA AppBuilder Properties Dictionary, used to add server.capabilities
  @constructor
  @public