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

@@ -3,6 +3,7 @@ package main
import (
"encoding/json"
"fmt"
"log"
"github.com/deranjer/gvc/messages"
"github.com/firstrow/tcp_server"
@@ -10,21 +11,42 @@ import (
var version = "0.1"
//This is a generic error message so we make it 'global'
var errorMsg = messages.Command{
CmdID: messages.ERROR,
Body: []byte("Unrecognized Message"),
}
func main() {
errMsgJSON, _ := json.Marshal(errorMsg) //creating a []byte to easily send error message
server := tcp_server.New("localhost:9999")
server.OnNewClient(func(c *tcp_server.Client) {
// new client connected
// lets send some message
fmt.Println("New client connected....")
c.Send("Connected\n")
newMessage := messages.Command{
CmdID: messages.CONNECTED,
Body: []byte("Connected"),
}
jsonMessage, err := json.Marshal(newMessage)
if err != nil {
log.Fatalf("error creating new marshaller: %s", err)
}
c.Send(jsonMessage)
})
server.OnNewMessage(func(c *tcp_server.Client, message string) {
newMessage := json.Unmarshal(message, messages.Command)
fmt.Println("new Message from client: ", newMessage.CmdID)
server.OnNewMessage(func(c *tcp_server.Client, message []byte) {
var newMessage messages.Command
//messageBytes := []byte(message)
err := json.Unmarshal(message, &newMessage)
if err != nil {
c.Send(errMsgJSON)
fmt.Println("error reading message, closing connection to client")
c.Close()
}
fmt.Println("new Message from client: ", message)
switch newMessage.CmdID {
case "Details\n":
fmt.Println("Sending server details to client")
case messages.INFO:
fmt.Println("Sending server info to client")
detailsMessage := fmt.Sprintf("Server Details are as follows: Version: %s \n", version)
c.Send(detailsMessage)
default: