You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: server.go
    path of file: ./repos/kubeedge/cloud/pkg/cloudhub/servers/udsserver
    
    the code of the file until where you have to start completion: package udsserver

import (
	"encoding/json"
	"errors"
	"fmt"

	"k8s.io/klog/v2"

	beehiveContext "github.com/kubeedge/beehive/pkg/core/context"
	"github.com/kubeedge/beehive/pkg/core/model"
	hubmodel "github.com/kubeedge/kubeedge/cloud/pkg/cloudhub/common/model"
	"github.com/kubeedge/kubeedge/common/constants"
)

// StartServer serves
func StartServer(address string) {
	uds := NewUnixDomainSocket(address)
	uds.SetContextHandler(func(context string) string {
		// receive message from client
		klog.Infof("uds server receives context: %s", context)
		msg, err := ExtractMessage(context)
		if err != nil {
			klog.Errorf("Failed to extract message: %v", err)
			return feedbackError(err, msg)
		}

		// Send message to edge
		resp, err := beehiveContext.SendSync(hubmodel.SrcCloudHub, *msg, constants.CSISyncMsgRespTimeout)
		if err != nil {
			klog.Errorf("failed to send message to
    
func StartServer(address string) {
	uds := NewUnixDomainSocket(address)
	uds.SetContextHandler(func(context string) string {
		// receive message from client
		klog.Infof("uds server receives context: %s", context)
		msg, err := ExtractMessage(context)
		if err != nil {
			klog.Errorf("Failed to extract message: %v", err)
			return feedbackError(err, msg)
		}

		// Send message to edge
		resp, err := beehiveContext.SendSync(hubmodel.SrcCloudHub, *msg, constants.CSISyncMsgRespTimeout)
		if err != nil {
			klog.Errorf("failed to send message to edge: %v", err)
			return feedbackError(err, msg)
		}
		// Marshal response message
		data, err := json.Marshal(resp)
		if err != nil {
			klog.Errorf("marshal response failed with error: %v", err)
			return feedbackError(err, msg)
		}
		klog.Infof("uds server send back data: %s resp: %v", string(data), resp)
		return string(data)
	})

	klog.Info("start unix domain socket server")
	if err := uds.StartServer(); err != nil {
		klog.Exitf("failed to start uds server: %v", err)
		return
	}
}