sqlite的api,便于内部使用
liuxiaolong
2019-05-16 dcd9ad9903a13a589973341d53272f1d1ed3c514
add mangos reqrep mode
2个文件已修改
3个文件已添加
72 ■■■■■ 已修改文件
areaApi_test.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
reqrepClient.go 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
reqrepClient_test.go 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
areaApi_test.go
@@ -7,7 +7,7 @@
func TestGetLocalCameraTree(t *testing.T) {
    var api AreaApi
    body := api.GetLocalCameraTree(0)
    body := api.GetLocalCameraTree(0, 0, "c")
    fmt.Println(body)
}
go.mod
@@ -1,3 +1,5 @@
module dbapi
go 1.12
require nanomsg.org/go-mangos v1.4.0
go.sum
New file
@@ -0,0 +1,2 @@
nanomsg.org/go-mangos v1.4.0 h1:pVRLnzXePdSbhWlWdSncYszTagERhMG5zK/vXYmbEdM=
nanomsg.org/go-mangos v1.4.0/go.mod h1:MOor8xUIgwsRMPpLr9xQxe7bT7rciibScOqVyztNxHQ=
reqrepClient.go
New file
@@ -0,0 +1,43 @@
package dbapi
import (
    "fmt"
    "os"
    "nanomsg.org/go-mangos"
    "nanomsg.org/go-mangos/protocol/req"
    "nanomsg.org/go-mangos/transport/ipc"
    "nanomsg.org/go-mangos/transport/tcp"
)
type ReqrepApi struct {
}
const (
    ReqRep_URL = "tcp://127.0.0.1:8002"
)
func (api ReqrepApi)SendRequest(reqStr string) string {
    var sock mangos.Socket
    var err error
    var msg []byte
    if sock, err = req.NewSocket(); err !=nil {
        fmt.Println("can't get new req socket!")
        os.Exit(1)
    }
    sock.AddTransport(ipc.NewTransport())
    sock.AddTransport(tcp.NewTransport())
    if err = sock.Dial(ReqRep_URL);err !=nil {
        fmt.Println("can't dial on req socket!!")
        os.Exit(1)
    }
    if err =sock.Send([]byte(reqStr));err !=nil {
        fmt.Println("can't send msg")
    }
    if msg,err = sock.Recv();err !=nil {
        fmt.Println("can't get msg from mangos reqrep server")
    }
    defer sock.Close()
    return string(msg)
}
reqrepClient_test.go
New file
@@ -0,0 +1,23 @@
package dbapi
import (
    "fmt"
    "testing"
    "time"
)
func TestMangosReqClient(t *testing.T){
    var reqClient1 ReqrepApi
    var reqClient2 ReqrepApi
    go doRequest(reqClient1, "one")
    go doRequest(reqClient2, "two")
    time.Sleep(time.Duration(5)*time.Second)
}
func doRequest(client ReqrepApi, idx string){
    for {
        msg := client.SendRequest(idx)
        fmt.Printf("receive msg: %s", msg)
    }
}