fixed duplicate bug
added initial websocket support; currently only supports a public channel