code: func (p *websocketChannel) DataFromSocket(data []byte) (int, error) {
  	if !p.read {
  		return len(data), nil
  	}
  
  	switch p.conn.codec {
  	case rawCodec:
  		return p.w.Write(data)
  	case base64Codec:
  		dst := make([]byte, len(data))
  		n, err := base64.StdEncoding.Decode(dst, data)
  		if err != nil {
  			return 0, err
  		}
  		return p.w.Write(dst[:n])
  	}
  	return 0, nil
  }
docs: // DataFromSocket is invoked by the connection receiver to move data from the connection
  // into a specific channel.