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:
parent
a7066dd68c
commit
239341ee87
86
keystore/keystore.go
Normal file
86
keystore/keystore.go
Normal 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"))
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user