func (c *SocketConnection) ExecuteUUID(uuid string, command string, args string, sync bool) (m *Message, err error) {
	return c.SendMsg(map[string]string{
		"call-command":     "execute",
		"execute-app-name": command,
		"execute-app-arg":  args,
		"event-lock":       strconv.FormatBool(sync),
	}, uuid, "")
}
ExecuteUUID - Helper fuck to execute uuid specific commands with its args and sync/async mode
package goesl
import (
	"bufio"
	"bytes"
	"fmt"
	"io"
	"net"
	"strconv"
	"strings"
	"sync"
	"time"
)
type SocketConnection struct {
	net.Conn
	err chan error
	m   chan *Message
	mtx sync.Mutex
}
func (c *SocketConnection) Dial(network string, addr string, timeout time.Duration) (net.Conn, error) {
	return net.DialTimeout(network, addr, timeout)
}
func (c *SocketConnection) Send(cmd string) error {
	if strings.Contains(cmd, "\r\n") {
		return fmt.Errorf(EInvalidCommandProvided, cmd)
	}
	c.mtx.Lock()
	defer c.mtx.Unlock()
	_, err := io.WriteString(c, cmd)
	if err != nil {
		return err
	}
	_, err = io.WriteString(c, "\r\n\r\n")
	if err != nil {
		return err
	}
	return nil
}
func (c *SocketConnection) SendMany(cmds []string) error {
	for _, cmd := range cmds {
		if err := c.Send(cmd); err != nil {
			return err
		}
	}
	return nil
}
func (c *SocketConnection) SendEvent(eventHeaders []string) error {
	if len(eventHeaders) <= 0 {
		return fmt.Errorf(ECouldNotSendEvent, len(eventHeaders))
	}
	c.mtx.Lock()
	defer c.mtx.Unlock()
	_, err := io.WriteString(c, "sendevent ")
	if err != nil {
		return err
	}
	for _, eventHeader := range eventHeaders {
		_, err := io.WriteString(c, eventHeader)
		if err != nil {
			return err
		}
		_, err = io.WriteString(c, "\r\n")
		if err != nil {
			return err
		}
	}
	_, err = io.WriteString(c, "\r\n")
	if err != nil {
		return err
	}
	return nil
}
func (c *SocketConnection) Execute(command, args string, sync bool) (m *Message, err error) {
	return c.SendMsg(map[string]string{
		"call-command":     "execute",
		"execute-app-name": command,
		"execute-app-arg":  args,
		"event-lock":       strconv.FormatBool(sync),
	}, "", "")
}