Here is what works for me:
geth --testnet --ws --wsaddr 0.0.0.0 --wsport 8546 --wsorigins * --cache 512 --rpc --wsapi "eth,net,web3,network,debug,txpool" --rpcapi "eth,net,web3,network,debug,txpool" --rpcaddr 0.0.0.0 --rpcport 8545 --fast
It's listening both on rpc and ws, but you can only use ws if you want.
Then, there are two things to know about listening to events with web3 1.0:
Event subscription won't show past events. If you need past events, use this:
YourContract.getPastEvents('YourEventName', { fromBlock: 0 }, (error, events) => {})
You can listen for new events like this:
TokenContract
.events
.Transfer({
from: 0,
to: 'latest',
})
.on('data', event => console.log('data', event));