1
0
mirror of https://github.com/schollz/cowyo.git synced 2023-08-10 21:13:00 +03:00

Create keystore.go

Former-commit-id: bc371d744dca228255db92d05fa764fbaa157eb2 [formerly ed45c432823c880548e99b37f400a103dc4f91e8] [formerly dcb0bd1f93260429a86ed8abf1ef8f835b0680e7 [formerly 12ca452230]]
Former-commit-id: 00e79655127e4308e6f7665486f95a3c417e0025 [formerly 40bfa8fd615cf56c8890120d1f5bc92b40d2e6c9]
Former-commit-id: c47dfb60b3cffe45224be010e30328eb2330277b
This commit is contained in:
Zack 2016-12-13 06:58:42 -08:00 committed by GitHub
parent a7066dd68c
commit 239341ee87

86
keystore/keystore.go Normal file
View File

@ -0,0 +1,86 @@
package main
import (
"encoding/json"
"fmt"
"log"
"github.com/gorilla/websocket"
)
func get(key string) interface{} {
c, _, err := websocket.DefaultDialer.Dial("wss://cowyo.com/ws", nil)
if err != nil {
log.Fatal("dial:", err)
}
defer c.Close()
done := make(chan struct{})
var value interface{}
go func() {
defer c.Close()
defer close(done)
for {
_, message, err := c.ReadMessage()
if err != nil {
// log.Println("read:", err)
return
}
var m struct {
TextData string
}
json.Unmarshal([]byte(message), &m)
json.Unmarshal([]byte(m.TextData), &value)
done <- struct{}{}
}
}()
// ask for something
c.WriteMessage(websocket.TextMessage, []byte(`{"Title":"`+key+`", "UpdateClient":true}`))
<-done
return value
}
func set(key string, message interface{}) interface{} {
c, _, err := websocket.DefaultDialer.Dial("wss://cowyo.com/ws", nil)
if err != nil {
log.Fatal("dial:", err)
}
defer c.Close()
done := make(chan struct{})
var value interface{}
go func() {
defer c.Close()
defer close(done)
for {
_, message, err := c.ReadMessage()
if err != nil {
// log.Println("read:", err)
return
}
var m struct {
TextData string
}
json.Unmarshal([]byte(message), &m)
json.Unmarshal([]byte(m.TextData), &value)
done <- struct{}{}
}
}()
// ask for something
bJson, _ := json.Marshal(message)
aa, _ := json.Marshal(map[string]interface{}{
"Title": key,
"UpdateServer": true,
"TextData": string(bJson),
})
c.WriteMessage(websocket.TextMessage, aa)
<-done
return value
}
func main() {
fmt.Println(get("data"))
fmt.Println(get("data"))
m := make(map[string]int)
m["some string"] = 29
fmt.Println(set("data2", m))
fmt.Println(get("data2"))
}