According to the specification http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf (as well as from what I can see in the node-ssdp code), the server is the controlled device. So, it is the server that sends the 'ssdp:update', 'ssdp:alive' and 'ssdp:bye' messages, while it is the client (the control point) that listens for the the 'ssdp:update', 'ssdp:alive' and 'ssdp:bye' messages. However, in the example it is the server that is listening for these messages.
According to the specification http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf (as well as from what I can see in the node-ssdp code), the server is the controlled device. So, it is the server that sends the 'ssdp:update', 'ssdp:alive' and 'ssdp:bye' messages, while it is the client (the control point) that listens for the the 'ssdp:update', 'ssdp:alive' and 'ssdp:bye' messages. However, in the example it is the server that is listening for these messages.