Abstracts websockets with fallbacks