and then upgrades to websockets if available