bencevans / node-sonos

🔈 Sonos Media Player Interface/Client

Home Page:https://www.npmjs.com/package/sonos

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use multiple listeners from same host

GerritKuilder opened this issue · comments

Don't know if this is related to Sonos or the code

Expected Behavior

Have an app running on 192.168.12.100
this app listens on sonos events and does what it is expected to do.

Create another app srunning on the same host and try to listen to the sonos device

Start the listener so you can respond to events

Current Behavior

when the second app is started the following error is generated:
Listen for sonos events. CTRL + C to exit
node:events:371
throw er; // Unhandled 'error' event
^

Error: listen EADDRINUSE: address already in use :::4000
at Server.setupListenHandle [as _listen2] (node:net:1319:16)
at listenInCluster (node:net:1367:12)
at Server.listen (node:net:1454:7)
at SonosListener.startListener (/home/gerrit/workspace/code/dev/betterspotv2/node_modules/sonos/lib/events/adv-listener.js:67:25)

Possible Solution

Sample code or executed example

  1. use script: https://github.com/bencevans/node-sonos/blob/master/examples/events.js
  2. (replace '../' with 'sonos'
    4.have one sonos listener already running
    5 run script
    6 error message

Versions (and Environment)

Node version:
latest
node-sonos version:
latest
OS:
UBUNTU

@GerritKuilder I must admit that this isn't documented anywhere, but you can set the environment variable SONOS_LISTENER_PORT to change the port that is used for the listener.

My I ask what the use case is for running multiple apps listening for events on the same host?

this.port = parseInt(process.env.SONOS_LISTENER_PORT || 4000)

Hi,

I have a dev version and a prod version running on the same server....
Will try and check later today.
Kind regards,

Gerrit Kuilder

Yes, that works perfectly, thanks

Do you have an idea where this should be documented?

I think you should add a note to the example?