working on messaging library, adding branching options to client

This commit is contained in:
2020-06-02 17:08:44 -04:00
parent 33b1c78eb2
commit 0276a1d776
14 changed files with 89 additions and 135 deletions

View File

@@ -1,7 +1,6 @@
package clientcmd
import (
"bufio"
"encoding/json"
"fmt"
"net"
@@ -10,7 +9,7 @@ import (
"strconv"
clientconfig "github.com/deranjer/gvc/client/clientconfig"
"github.com/deranjer/gvc/messages"
messages "github.com/deranjer/gvc/messages"
)
// ConfigPath is the global path to the config that is injected from the main client package.
@@ -76,25 +75,28 @@ func ConnectToServer(serverName string, branchName string, conf *clientconfig.Gv
port := ":" + strconv.Itoa(remote.Port)
connectionString := remote.Host + port
conn, err := net.Dial("tcp", connectionString)
defer conn.Close()
if err != nil {
return nil, fmt.Errorf("error connecting to %s", connectionString)
}
fmt.Println("Attempting connection on: ", connectionString)
decoder := json.NewDecoder(conn)
newMessage := messages.Cmd{}
var newMessage messages.Command
for { // Doing our 'handshake'
decoder.Decode(&newMessage)
message, err := bufio.NewReader(conn).ReadString('\n')
if err != nil {
return nil, fmt.Errorf("error reading from connection: %s", err)
}
fmt.Printf("Message from server: %s", message)
switch message {
case "Connected\n":
fmt.Println("Message from server", newMessage)
switch newMessage.CmdID {
case messages.CONNECTED:
fmt.Println("Server recognized client")
return &conn, nil
default:
return nil, fmt.Errorf("unexpected response from server: ", message)
fmt.Println("message: ", newMessage.CmdID)
return nil, fmt.Errorf("Unexpected message from server")
//return nil, fmt.Errorf("unexpected response from server: ", newMessage)
}
}
}