| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package main
- import (
- "flag"
- "fmt"
- "strconv"
- "git.wecise.com/wecise/odbserver/test/eifsend/ovo"
- )
- func main() {
- ip := flag.String("ip", "127.0.0.1", "Send server ip")
- port := flag.Uint("port", 9998, "Send server port")
- //var wgTest sync.WaitGroup
- // EIF发送器
- eifSender := &ovo.EIFSender{
- Tracer: ovo.NewTracer("eifSender"),
- Configuration: &ovo.Configuration{
- ID: "test.eifSender",
- ServerLocation: *ip,
- ServerPort: int(*port),
- },
- }
- defer eifSender.Close()
- eifSender.Trace('D', "发送地址%s:%d", *ip, *port)
- //// EIF接收器
- //eifReceiver := &ovo.EIFReceiver{
- // Tracer: ovo.NewTracer("eifReceiver"),
- // Configuration: &ovo.Configuration{
- // ID: "test.eifReceiver",
- // ServerLocation: "",
- // ServerPort: 9999,
- // InitRecvBufSize: 1024 * 4, // 每个连接初始分配的缓冲区字节数,建议为常规一条数据字节数的4~8倍
- // MaxRecvBufSize: 1024 * 1024 * 100, // 每个连接可以分配的最大缓冲区字节数
- // },
- //}
- // 消息发送函数
- msgsend := func(class string, data map[string]string) {
- count, _ := strconv.Atoi(data["number"])
- eifSender.Trace('X', "测试 %d 消息准备发送: %v:%v", count, class, data)
- ns, err := eifSender.Send(class, data)
- if err != nil {
- eifSender.Trace('D', "测试 %d 消息发送失败 %s", count, err)
- }
- eifSender.Trace('D', "测试 %d 消息发送 %d 字节", count, ns)
- }
- //// 短链接消息发送函数
- //imsgsend := func(class string, data map[string]string) {
- // // EIF发送器
- // tempEifSender := &ovo.EIFSender{
- // Tracer: ovo.NewTracer("tempEifSender"),
- // Configuration: &ovo.Configuration{
- // ID: "test.tempEifSender",
- // ServerLocation: "127.0.0.1",
- // ServerPort: 9990,
- // },
- // }
- // defer tempEifSender.Close()
- // count, _ := strconv.Atoi(data["number"])
- // tempEifSender.Trace('X', "测试 %d 消息准备发送: %v:%v", count, class, data)
- // ns, err := tempEifSender.Send(class, data)
- // if err != nil {
- // tempEifSender.Trace('D', "测试 %d 消息发送失败 %s", count, err)
- // }
- // tempEifSender.Trace('D', "测试 %d 消息发送 %d 字节", count, ns)
- //}
- //
- //starttime := time.Now()
- //msgcount := 0
- //// 消息处理函数
- //msgproc := func(remote_addr string, class string, data map[string]string) {
- // msgcount++
- // eifReceiver.CalmTrace("eifReceiver", 1000, 'D', "%v 收到 %d:%v => %v:%v", time.Now().Sub(starttime), msgcount, remote_addr, class, data)
- // sleep, _ := strconv.Atoi(data["sleep"])
- // if sleep <= 0 {
- // sleep = 1000
- // data["sleep"] = "1000"
- // }
- // number, _ := strconv.Atoi(data["number"])
- // number--
- // data["number"] = fmt.Sprintf("%d", number)
- // if number > 0 {
- // // 延时发送新消息
- // go func(sleep int, class string, data map[string]string) {
- // time.Sleep(time.Duration(sleep) * 1e6)
- // if rand.Float32() < 0.8 {
- // // 短链接
- // imsgsend(class, data)
- // } else {
- // // 长链接
- // msgsend(class, data)
- // }
- // }(sleep, class, data)
- // }
- //}
- //
- //// 启动EIFReceiver
- //go func() {
- // wgTest.Add(1)
- // defer wgTest.Done()
- // eifReceiver.Run(msgproc)
- //}()
- //
- //// 等待Receiver启动完成
- //for !(eifReceiver.IsRunning()) {
- // time.Sleep(1)
- //}
- // 发送测试信息
- func(n int) {
- data := make(map[string]string)
- data["number"] = fmt.Sprintf("%d", n)
- data["sleep"] = "1000"
- data["string"] = "EIF信息发送测试'`~!@#$%^&*?...'"
- msgsend("test", data)
- }(10)
- // 等待Recever结束
- //wgTest.Wait()
- }
|