code: func (conn *Conn) handle(ws *websocket.Conn) {
  	defer conn.Close()
  	conn.initialize(ws)
  
  	for {
  		conn.resetTimeout()
  		var data []byte
  		if err := websocket.Message.Receive(ws, &data); err != nil {
  			if err != io.EOF {
  				glog.Errorf("Error on socket receive: %v", err)
  			}
  			break
  		}
  		if len(data) == 0 {
  			continue
  		}
  		channel := data[0]
  		if conn.codec == base64Codec {
  			channel = channel - '0'
  		}
  		data = data[1:]
  		if int(channel) >= len(conn.channels) {
  			glog.V(6).Infof("Frame is targeted for a reader %d that is not valid, possible protocol error", channel)
  			continue
  		}
  		if _, err := conn.channels[channel].DataFromSocket(data); err != nil {
  			glog.Errorf("Unable to write frame to %d: %v\n%s", channel, err, string(data))
  			continue
  		}
  	}
  }
docs: // handle implements a websocket handler.