Skip to content

byebye message not sent when calling bus.stop() #5

Description

@davidatingenuity

HI @achingbrain,
I'm using your library, and integrating it with express, as per your example:
const upnp = require('@achingbrain/ssdp')(options.ssdpOptions);
const ssdp = require('./ssdp/ssdp');
upnp.on('error', console.error) // Log errors
.advertise(ssdp.services) // Advertise the services configured
.then(ssdp.serviceHosting) // Configure Express to serve the details.xml file
.then(addRoutes); // then add all the other routes

where:

  • options.ssdpOptions specifies a guid for the udn,
  • ssdp.services contains the USN, the location and the details for the service,
  • ssdp.serviceHosting contains the routing for express, and
  • addRoutes adds all the remaining routes to express.

To get to this point, I needed to modify stop-advert.js slightly. To integrate with express, I need to specify a location, but if the location is specified, no shutdownServers function is created in create-location.js, and an unhandled promise rejection is thrown in stop-advert.js when it tries to call plumbing.shutdownServers. All I'm doing is checking if shutdownServers exists before it's called.

The issue I'm having is when I call upnp.stop(), a transport:outgoing-message is emitted for the byebye, but I never see the corresponding packet in wireshark. The socket.send call never seems to return.

I can submit a PR for the unhandled promise rejection, but I'm stuck on the other issue. Any ideas?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions