republish
parent
f51d2c7137
commit
72c3bc1c1c
@ -1,161 +0,0 @@
|
|||||||
package notify
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Test_usechannel(t *testing.T) {
|
|
||||||
server, err := NewNotifyS("udp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
server.SetNotify("nihao", func(data SMsg) string {
|
|
||||||
fmt.Println("server recv:", data.Key, data.Value)
|
|
||||||
if data.Value != "" {
|
|
||||||
data.Reply("nba")
|
|
||||||
return "nb"
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
})
|
|
||||||
client, err := NewNotifyC("udp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
client.UseChannel = true
|
|
||||||
//time.Sleep(time.Second * 10)
|
|
||||||
client.Send("nihao")
|
|
||||||
client.SendValue("nihao", "lalala")
|
|
||||||
txt := <-client.Notify("nihao")
|
|
||||||
fmt.Println("client", txt)
|
|
||||||
txt = <-client.Notify("nihao")
|
|
||||||
fmt.Println("client", txt)
|
|
||||||
server.ServerStop()
|
|
||||||
<-client.Stoped()
|
|
||||||
client.ClientStop()
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_nochannel(t *testing.T) {
|
|
||||||
server, err := NewNotifyS("tcp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
server.SetNotify("nihao", func(data SMsg) string {
|
|
||||||
fmt.Println("server recv:", data.Key, data.Value)
|
|
||||||
if data.Value != "" {
|
|
||||||
data.Reply("nbaz")
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
})
|
|
||||||
client, err := NewNotifyC("tcp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//time.Sleep(time.Second * 10)
|
|
||||||
client.UseChannel = false
|
|
||||||
client.SetNotify("nihao", func(data CMsg) {
|
|
||||||
fmt.Println("client recv:", data.Key, data.Value)
|
|
||||||
if data.Value != "" {
|
|
||||||
time.Sleep(time.Millisecond * 900)
|
|
||||||
client.SendValue("nihao", "dsb")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
client.SendValue("nihao", "lalala")
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
server.ServerStop()
|
|
||||||
<-client.Stoped()
|
|
||||||
client.ClientStop()
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_pipec(t *testing.T) {
|
|
||||||
server, err := NewNotifyS("tcp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
server.SetAesKey([]byte("abcdefg123456789"))
|
|
||||||
server.SetNotify("ni\\||hao", func(data SMsg) string {
|
|
||||||
fmt.Println("name-get", data.GetName())
|
|
||||||
fmt.Println("name-set", data.SetName("iiiis"))
|
|
||||||
fmt.Println("name-get", data.GetName())
|
|
||||||
fmt.Println("server recv:", data.Key, data.Value, data.mode)
|
|
||||||
if data.Value != "" {
|
|
||||||
data.Reply("nba")
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
})
|
|
||||||
client, err := NewNotifyC("tcp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
client.SetAesKey([]byte("abcdefg123456789"))
|
|
||||||
client.UseChannel = false
|
|
||||||
sa, err := client.SendValueWait("ni\\||hao", "lalaeee", time.Second*10)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(sa)
|
|
||||||
sa, err = client.SendValueWait("ni\\||hao", "lalasdeee", time.Second*10)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(sa)
|
|
||||||
fmt.Println("sukidesu")
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
server.ServerStop()
|
|
||||||
<-client.Stoped()
|
|
||||||
client.ClientStop()
|
|
||||||
time.Sleep(time.Second * 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_pips(t *testing.T) {
|
|
||||||
var testmsg SMsg
|
|
||||||
server, err := NewNotifyS("udp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
server.SetNotify("nihao", func(data SMsg) string {
|
|
||||||
fmt.Println("server recv:", data.Key, data.Value, data.mode)
|
|
||||||
testmsg = data
|
|
||||||
if data.Value != "" {
|
|
||||||
data.Reply("nbaz")
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
})
|
|
||||||
client, err := NewNotifyC("udp", "127.0.0.1:1926")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//time.Sleep(time.Second * 10)
|
|
||||||
client.UseChannel = false
|
|
||||||
client.SetNotify("nihao", func(data CMsg) {
|
|
||||||
fmt.Println("client recv:", data.Key, data.Value, data.mode)
|
|
||||||
if data.mode != "pa" {
|
|
||||||
time.Sleep(time.Millisecond * 1200)
|
|
||||||
client.ReplyMsg(data, "nihao", "dsb")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
client.SendValue("nihao", "lalala")
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
fmt.Println(server.SendWait(testmsg, "nihao", "wozuinb", time.Second*20))
|
|
||||||
fmt.Println("sakura")
|
|
||||||
server.ServerStop()
|
|
||||||
<-client.Stoped()
|
|
||||||
client.ClientStop()
|
|
||||||
time.Sleep(time.Second * 3)
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
package notify
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"encoding/gob"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Register(data interface{}) {
|
|
||||||
gob.Register(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAll(data []interface{}) {
|
|
||||||
for _, v := range data {
|
|
||||||
gob.Register(v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func encode(src interface{}) ([]byte, error) {
|
|
||||||
var buf bytes.Buffer
|
|
||||||
enc := gob.NewEncoder(&buf)
|
|
||||||
err := enc.Encode(&src)
|
|
||||||
return buf.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
func Decode(src []byte) (interface{}, error) {
|
|
||||||
dec := gob.NewDecoder(bytes.NewReader(src))
|
|
||||||
var dst interface{}
|
|
||||||
err := dec.Decode(&dst)
|
|
||||||
return dst, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (nmsg *SMsg) Decode() (interface{}, error) {
|
|
||||||
return Decode([]byte(nmsg.Value))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (nmsg *CMsg) Decode() (interface{}, error) {
|
|
||||||
return Decode([]byte(nmsg.Value))
|
|
||||||
}
|
|
@ -1,103 +0,0 @@
|
|||||||
package starnotify
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"b612.me/notify/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
starClient map[string]*notify.StarNotifyC
|
|
||||||
starServer map[string]*notify.StarNotifyS
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
starClient = make(map[string]*notify.StarNotifyC)
|
|
||||||
starServer = make(map[string]*notify.StarNotifyS)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewClient(key, netype, value string) (*notify.StarNotifyC, error) {
|
|
||||||
client, err := notify.NewNotifyC(netype, value)
|
|
||||||
if err != nil {
|
|
||||||
return client, err
|
|
||||||
}
|
|
||||||
starClient[key] = client
|
|
||||||
return client, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewClientWithTimeout(key, netype, value string, timeout time.Duration) (*notify.StarNotifyC, error) {
|
|
||||||
client, err := notify.NewNotifyCWithTimeOut(netype, value, timeout)
|
|
||||||
if err != nil {
|
|
||||||
return client, err
|
|
||||||
}
|
|
||||||
starClient[key] = client
|
|
||||||
return client, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteClient(key string) error {
|
|
||||||
client, ok := starClient[key]
|
|
||||||
if !ok {
|
|
||||||
return errors.New("Not Exists Yet!")
|
|
||||||
}
|
|
||||||
if client.Online {
|
|
||||||
client.ClientStop()
|
|
||||||
}
|
|
||||||
client = nil
|
|
||||||
delete(starClient, key)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewServer(key, netype, value string) (*notify.StarNotifyS, error) {
|
|
||||||
server, err := notify.NewNotifyS(netype, value)
|
|
||||||
if err != nil {
|
|
||||||
return server, err
|
|
||||||
}
|
|
||||||
starServer[key] = server
|
|
||||||
return server, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteServer(key string) error {
|
|
||||||
server, ok := starServer[key]
|
|
||||||
if !ok {
|
|
||||||
return errors.New("Not Exists Yet!")
|
|
||||||
}
|
|
||||||
if server.Online {
|
|
||||||
server.ServerStop()
|
|
||||||
}
|
|
||||||
server = nil
|
|
||||||
delete(starServer, key)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func S(key string) *notify.StarNotifyS {
|
|
||||||
server, ok := starServer[key]
|
|
||||||
if !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return server
|
|
||||||
}
|
|
||||||
|
|
||||||
func C(key string) *notify.StarNotifyC {
|
|
||||||
client, ok := starClient[key]
|
|
||||||
if !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return client
|
|
||||||
}
|
|
||||||
|
|
||||||
func Server(key string) (*notify.StarNotifyS, error) {
|
|
||||||
server, ok := starServer[key]
|
|
||||||
if !ok {
|
|
||||||
return nil, errors.New("Not Exists Yet")
|
|
||||||
}
|
|
||||||
return server, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func Client(key string) (*notify.StarNotifyC, error) {
|
|
||||||
client, ok := starClient[key]
|
|
||||||
if !ok {
|
|
||||||
return nil, errors.New("Not Exists Yet")
|
|
||||||
}
|
|
||||||
return client, nil
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
package notify
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"sync/atomic"
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Test_ServerTuAndClientCommon(t *testing.T) {
|
|
||||||
server, err := NewNotifyS("tcp", "127.0.0.1:12345")
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
server.SetNotify("notify", notify)
|
|
||||||
for i := 1; i <= 1; i++ {
|
|
||||||
go func() {
|
|
||||||
|
|
||||||
client, err := NewNotifyC("tcp", "127.0.0.1:12345")
|
|
||||||
if err != nil {
|
|
||||||
time.Sleep(time.Second * 2)
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
//nowd = time.Now().UnixNano()
|
|
||||||
client.SendValueWait("notify", "client hello", time.Second*50)
|
|
||||||
//time.Sleep(time.Millisecond)
|
|
||||||
//fmt.Println("finished:", float64(time.Now().UnixNano()-nowd)/1000000)
|
|
||||||
//client.Send("notify", []byte("client hello"))
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
go func() {
|
|
||||||
time.Sleep(time.Second * 10)
|
|
||||||
server.ServerStop()
|
|
||||||
}()
|
|
||||||
<-server.Stoped()
|
|
||||||
//time.Sleep(time.Second * 5)
|
|
||||||
fmt.Println(count2)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var count2 int64
|
|
||||||
|
|
||||||
func notify(msg SMsg) string {
|
|
||||||
//fmt.Println(string(msg.Msg.Value))
|
|
||||||
//fmt.Println("called:", float64(time.Now().UnixNano()-nowd)/1000000)
|
|
||||||
|
|
||||||
go atomic.AddInt64(&count2, 1)
|
|
||||||
return "ok"
|
|
||||||
}
|
|
Loading…
Reference in New Issue