+ allow websocket to be optional