mirror of https://github.com/vacp2p/research.git
Seralize and deserialize end to end with text and parent0
This commit is contained in:
parent
523ba3e4b6
commit
f2d9258d87
|
@ -114,7 +114,15 @@ func listenForMessages(msgC chan pss.APIMsg) {
|
||||||
in := <-msgC
|
in := <-msgC
|
||||||
// XXX: Who is in.key really? want readable public key here
|
// XXX: Who is in.key really? want readable public key here
|
||||||
// XXX: The UX is an illusion
|
// XXX: The UX is an illusion
|
||||||
fmt.Println("Alice:", string(in.Msg))
|
|
||||||
|
// XXX: parsing logic should be same for pull from feed
|
||||||
|
parsed := deserialize(string(in.Msg))
|
||||||
|
|
||||||
|
//fmt.Println("Alice old:", string(in.Msg))
|
||||||
|
// XXX Only one parent
|
||||||
|
// TODO: Get all the parents here
|
||||||
|
fmt.Println("Alice:", string(parsed.Text), "- parent0:", string(parsed.Parents[0]))
|
||||||
|
|
||||||
//fmt.Println("\nReceived message", string(in.Msg), "from", fmt.Sprintf("%x", in.Key))
|
//fmt.Println("\nReceived message", string(in.Msg), "from", fmt.Sprintf("%x", in.Key))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,7 +286,12 @@ func pullMessages() {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
buf.ReadFrom(response)
|
buf.ReadFrom(response)
|
||||||
feedStr := buf.String()
|
feedStr := buf.String()
|
||||||
fmt.Println("Feed result: ", feedStr)
|
|
||||||
|
parsed := deserialize(feedStr)
|
||||||
|
|
||||||
|
//fmt.Println("Feed result old: ", feedStr)
|
||||||
|
fmt.Println("Feed result: ", parsed.Text, "- parent0:", parsed.Parents[0])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX: This is so sloppy, passing privatekey around
|
// XXX: This is so sloppy, passing privatekey around
|
||||||
|
@ -526,10 +539,20 @@ func init() {
|
||||||
log.Root().SetHandler(h)
|
log.Root().SetHandler(h)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: The swarm hash should match up with message ID
|
||||||
|
// How does this impact design?
|
||||||
|
|
||||||
// XXX: Ensure signature, also probably better with client as context but meh
|
// XXX: Ensure signature, also probably better with client as context but meh
|
||||||
func sendMessage(client *rpc.Client, signer *feed.GenericSigner, receiver string, topic string, input string) {
|
func sendMessage(client *rpc.Client, signer *feed.GenericSigner, receiver string, topic string, input string) {
|
||||||
//fmt.Println("Input:", input)
|
//fmt.Println("Input:", input)
|
||||||
err := client.Call(nil, "pss_sendAsym", receiver, topic, common.ToHex([]byte(input)))
|
|
||||||
|
// From input and parents, construct message
|
||||||
|
// TODO: Hardcode parents now, later need to upload and keep track of
|
||||||
|
msg := message{Text: input, Parents: []string{"foo", "bar"}}
|
||||||
|
// XXX: Direct to byte and toHex?
|
||||||
|
payload := serialize(msg)
|
||||||
|
|
||||||
|
err := client.Call(nil, "pss_sendAsym", receiver, topic, common.ToHex([]byte(payload)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error sending message through RPC client", err)
|
fmt.Println("Error sending message through RPC client", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
@ -538,7 +561,9 @@ func sendMessage(client *rpc.Client, signer *feed.GenericSigner, receiver string
|
||||||
// Also post to feed
|
// Also post to feed
|
||||||
// XXX: Currently hardcoded to plaintext name, could be hash of two pubkeys e.g.
|
// XXX: Currently hardcoded to plaintext name, could be hash of two pubkeys e.g.
|
||||||
// TODO: If any errors with this, show this
|
// TODO: If any errors with this, show this
|
||||||
postToFeed(client, signer, receiver, topic, input)
|
|
||||||
|
// XXX payload fine?
|
||||||
|
postToFeed(client, signer, receiver, topic, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func serialize(msg message) string {
|
func serialize(msg message) string {
|
||||||
|
@ -565,10 +590,10 @@ func main() {
|
||||||
fmt.Printf("Setting up node and connecting to the network...\n")
|
fmt.Printf("Setting up node and connecting to the network...\n")
|
||||||
|
|
||||||
// Example
|
// Example
|
||||||
msg := message{Text: "hi", Parents: []string{"foo", "bar"}}
|
// msg := message{Text: "hi", Parents: []string{"foo", "bar"}}
|
||||||
payload := serialize(msg)
|
// payload := serialize(msg)
|
||||||
parsed := deserialize(payload)
|
// parsed := deserialize(payload)
|
||||||
fmt.Println(parsed.Parents[0])
|
// fmt.Println(parsed.Parents[0])
|
||||||
|
|
||||||
// TODO: Then, integrate feed and update there too
|
// TODO: Then, integrate feed and update there too
|
||||||
// Cool, here ATM.
|
// Cool, here ATM.
|
||||||
|
|
Loading…
Reference in New Issue