From 70df7b912014201e271a2966599b84d77addd0f9 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期二, 28 五月 2019 15:12:47 +0800
Subject: [PATCH] test all process

---
 /dev/null          |   14 --
 go.sum             |   23 ++
 test               |    0 
 tasktag/tasktag.go |   34 +++-
 go.mod             |    7 
 main.go            |   12 -
 sdk/sdk.go         |   37 ++--
 camera/camera.go   |  260 +++++++++++++++---------------------
 8 files changed, 175 insertions(+), 212 deletions(-)

diff --git a/camera/camera.go b/camera/camera.go
index 0fc7724..e24cf2f 100644
--- a/camera/camera.go
+++ b/camera/camera.go
@@ -1,183 +1,141 @@
 package camera
 
 import (
-	"errors"
+        "errors"
 
-	"github.com/long/test/deliver"
-	"github.com/long/test/httpclient"
-	"github.com/long/test/sdk"
+        "basic.com/dbapi.git"
+        "basic.com/valib/deliver.git"
+        "basic.com/pubsub/protomsg.git"
 
-	"context"
-	"encoding/json"
-	"fmt"
-	"time"
-)
+        "github.com/long/test/sdk"
 
-/*
-* 1.  鑾峰彇 cid
-* 2.  鑾峰彇 cid鍜� taskid鍏崇郴
-* 3.  鑾峰彇 cid ipc communication
- */
-var SocketManage = make(map[string]SocketContext)
-var Initchannel = make(chan Camerdata)
-var UrlPort = 7000
+        "context"
+        "fmt"
+        "sync"
+        "time"
+       )
 
-type Camerdata struct {
-	Cameraid string
-	Rtsp     string
-}
+//var SocketManage = make(map[string]SocketContext)
+var SocketManage sync.Map
 
-type SocketContext struct {
-	Sock    deliver.Deliver
-	Context context.Context
-	Cancel  context.CancelFunc
-}
+var Initchannel = make(chan string)
 
-func Taskdolist(cid string, taskid string, data []byte) {
+    type SocketContext struct {
+        Sock    deliver.Deliver
+            Context context.Context
+            Cancel  context.CancelFunc
+    }
 
-	fmt.Println("======================================")
-	//  鏁版嵁鍔犲伐(鎵撴爣绛�)
-	sdkmsg := sdk.SdkData(cid, taskid, data)
-	if sdkmsg.Tasklab == nil {
-		fmt.Println("cid:%s 娌℃湁浠诲姟%s", cid, taskid)
-		return
-	}
+var camval dbapi.CameraApi
 
-	//  璁$畻鍒嗗彂鐨勪富棰�
-	SendTopic := sdk.SdkSendTopic(sdkmsg)
-	if _, ok := sdk.SdkMap[SendTopic]; ok {
-		fmt.Println("鍒嗗彂鐨勪富棰樺瓨鍦�")
-		sdk.SdkMap[SendTopic] <- sdkmsg
-		//fmt.Println("閲嶆柊寮�濮嬪惊鐜�: ", sdk.SdkMap)
-	} else {
-		fmt.Println("鍒嗗彂鐨勪富棰樹笉瀛樺湪")
-	}
-
-}
+//get camera with task
+var cameraTasks []protomsg.CameraAndTaskInfo
 
 func Init() {
 
-	CameraRelative()
-	fmt.Println()
-	fmt.Println("cid,taskid , sid: ", CtsId)
+    fmt.Println("============ camera info ====================")
+    ctsid := camval.FindAll()
 
-	url := fmt.Sprintf("%s%d", "tcp://192.168.1.124:", UrlPort)
-	_, socket, err := NewCamerSocketListen(deliver.Pair, "init", url)
-	if err != nil {
-		return
-	}
-	UrlPort++
+    fmt.Println("==============camera camera with task ================")
+    cameraTasks=camval.FindAllCameraAndTask()
 
-	go SendRecv(socket, Initchannel)
+    go CreateCamera(Initchannel)
 
-	var cameratodecode Camerdata
-	for {
-		time.Sleep(2 * time.Second)
-		i := 0
-		for _, cam := range CtsId {
-
-			if i < 2 {
-				cameratodecode.Cameraid = cam.Cameraid
-				cameratodecode.Rtsp = cam.RtspUrl
-				Initchannel <- cameratodecode
-			}
-			i++
-		}
-	}
+    for _, cam := range ctsid {
+        Initchannel <- cam.Id
+    }
 }
 
-func send(socket SocketContext, cam Camerdata) {
-	b, err := json.Marshal(cam)
-	if err != nil {
-		fmt.Println("can not json convert !", cam)
-	}
-	if err := socket.Sock.Send(b); err != nil {
-		fmt.Println("camera info: failed send")
-	}
-}
+func CreateCamera(camera chan string) {
+    for camid := range camera {
+        if _, ok := SocketManage.Load(camid); !ok {
+            url := fmt.Sprintf("ipc:///tmp/%s.ipc", camid)
 
-func SendRecv(socket SocketContext, camera chan Camerdata) {
-	//socket.Sock.SetOption(mangos.OptionRecvDeadline, 5*time.Second)
-	for cam := range camera {
-		send(socket, cam)
-		if _, ok := SocketManage[cam.Cameraid]; !ok {
-			go func(id string, urlport int) {
-				fmt.Println("create cid server: ", id)
-				url := fmt.Sprintf("%s%d", "tcp://192.168.1.124:", urlport)
-				cid, socketlisten, err := NewCamerSocketListen(deliver.PushPull, id, url)
+            id, socketlisten, err := NewCamerSocketListen(deliver.PushPull, camid, url)
+            if err != nil {
+              fmt.Println("create socket error")
+              continue 
+            }
 
-				if err != nil {
-					return
-				}
-				fmt.Println("input id: ", id, " output id :", cid)
-				Recv(cid, socketlisten)
-
-			}(cam.Cameraid, UrlPort)
-
-			UrlPort++
-		}
-	}
-}
-
-// 鑾峰彇 cid 锛� taskid, sdkid 鍏崇郴
-var CtsId []httpclient.Camerasingle
-
-func CameraRelative() {
-	CtsId = httpclient.GetEsDataReq("http://127.0.0.1:8000/data/api-v/camera/queryCameraAndTaskInfo")
-}
-
-//   鏍规嵁cid 鑾峰彇 鎵�鏈夌殑浠诲姟
-func GetAlltask(cid string) (tasks []string) {
-	for _, camsingle := range CtsId {
-		if cid == camsingle.Cameraid {
-			for _, tasksingle := range camsingle.TaskList {
-				tasks = append(tasks, tasksingle.Taskid)
-			}
-			return
-		}
-	}
-	return
+             go func(cid string, sock SocketContext ){
+                  Recv(cid,sock)
+             }(id,socketlisten)
+        }
+    }
 }
 
 // create server
 func NewCamerSocketListen(mode int, cameraid string, url string) (cid string, socket SocketContext, err error) {
-	fmt.Println("url is: ", url)
-	ctx, cancel := context.WithCancel(context.Background())
+        ctx, cancel := context.WithCancel(context.Background())
 
-	socket.Context = ctx
-	socket.Cancel = cancel
+        socket.Context = ctx
+        socket.Cancel = cancel
 
-	socket.Sock = deliver.NewServer(deliver.Mode(mode), url)
-	fmt.Println("new socket.Sock: ", socket.Sock)
+        socket.Sock = deliver.NewServer(deliver.Mode(mode), url)
+        fmt.Println("new socket.Sock: ", socket.Sock)
 
-	if socket.Sock == nil {
-		return cameraid, socket, errors.New("create listen error")
-	}
-
-	SocketManage[cameraid] = socket
-	return cameraid, socket, nil
+        if socket.Sock == nil {
+            return cameraid, socket, errors.New("create listen error")
+        }
+        SocketManage.Store(cameraid, socket)
+        return cameraid, socket, nil
 }
 
 func Recv(cameraid string, socket SocketContext) {
-	//	socket.Sock.SetOption(mangos.OptionRecvDeadline, 5*time.Second)
-	var msg []byte
-	var err error
-	for {
-		select {
-		case <-socket.Context.Done():
-			fmt.Println("listen recv quit")
-			return
-		default:
-			if msg, err = socket.Sock.Recv(); err != nil {
-				//fmt.Printf("%s ", err)
-				continue
-			} else {
-				fmt.Println("cameraid: ", len(msg))
-				for _, taskid := range GetAlltask(cameraid) {
-					Taskdolist(cameraid, taskid, msg)
-					//	fmt.Println("receive: ", len(msg), "cameraid: ", cameraid, "taskid: ", taskid)
-				}
-			}
-		}
-	}
+        var msg []byte
+        var err error
+        for {
+            select {
+                case <-socket.Context.Done():
+                    fmt.Println("listen recv quit")
+                        return
+                default:
+                        if msg, err = socket.Sock.Recv(); err != nil {
+                            fmt.Println("err is: ", cameraid, err)
+                                continue
+                        } else {
+                            fmt.Println()
+                            fmt.Println("============== one msg input ==========")
+                            fmt.Println("cameraid: ",cameraid,  len(msg))
+                            for _, taskid := range GetAlltask(cameraid) {
+                                time.Sleep(5* time.Second)
+                                fmt.Println("cameraid: ",cameraid," taskid: ", taskid)
+                                Taskdolist(cameraid, taskid, msg)
+                             }
+                        }
+            }
+        }
+}
+
+//   鏍规嵁cid 鑾峰彇 鎵�鏈夌殑浠诲姟
+func GetAlltask(cid string) (tasks []string) {
+    for _, camsingle := range cameraTasks {
+        if cid == camsingle.Camera.Id {
+            for _, tasksingle := range camsingle.Tasks {
+                tasks = append(tasks, tasksingle.Taskid)
+            }
+                return
+        }
+    }
+    return
+}
+
+func Taskdolist(cid string, taskid string, data []byte) {
+
+        //  鏁版嵁鍔犲伐(鎵撴爣绛�)
+        sdkmsg := sdk.SdkData(cid, taskid, data)
+        if sdkmsg.Tasklab == nil {
+            fmt.Println("cid:%s 娌℃湁浠诲姟%s", cid, taskid)
+                return
+        }
+
+    //  璁$畻鍒嗗彂鐨勪富棰�
+            SendTopic := sdk.SdkSendTopic(sdkmsg)
+               if _, ok := sdk.SdkMap[SendTopic]; ok {
+                   fmt.Println("鍒嗗彂鐨勪富棰樺瓨鍦�")
+                       sdk.SdkMap[SendTopic] <- sdkmsg
+                       //fmt.Println("閲嶆柊寮�濮嬪惊鐜�: ", sdk.SdkMap)
+               } else {
+                   fmt.Println("鍒嗗彂鐨勪富棰樹笉瀛樺湪")
+               }
 }
diff --git a/deliver b/deliver
deleted file mode 160000
index 9a89af6..0000000
--- a/deliver
+++ /dev/null
@@ -1 +1 @@
-Subproject commit 9a89af693b9336633bcac2a652c294f782e6b3b1
+Subproject commit 0000000000000000000000000000000000000000
diff --git a/go.mod b/go.mod
index f5b56ae..45d72ff 100644
--- a/go.mod
+++ b/go.mod
@@ -3,12 +3,15 @@
 go 1.12
 
 require (
-	github.com/Microsoft/go-winio v0.4.12 // indirect
+	basic.com/dbapi.git v0.0.0-20190523103034-c0d33072098b
+	basic.com/pubsub/protomsg.git v0.0.0-20190524072049-ce8c0f2b14dd
+	basic.com/valib/deliver.git v0.0.0-20190522053509-c2bbe31e7c6c
+	github.com/gogo/protobuf v1.2.1 // indirect
 	github.com/golang/protobuf v1.3.1
 	github.com/gorilla/websocket v1.4.0 // indirect
 	github.com/tmthrgd/go-sem v0.0.0-20160607101025-0214dbf53877 // indirect
 	github.com/tmthrgd/go-shm v0.0.0-20170117044846-90afcfcd5ee9 // indirect
 	github.com/tmthrgd/shm-go v0.0.0-20170130075737-7207ca97b290
-	golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be // indirect
+	golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5 // indirect
 	nanomsg.org/go-mangos v1.4.0
 )
diff --git a/go.sum b/go.sum
index e7e5435..6d98dfd 100644
--- a/go.sum
+++ b/go.sum
@@ -1,16 +1,31 @@
-github.com/Microsoft/go-winio v0.4.12 h1:xAfWHN1IrQ0NJ9TBC0KBZoqLjzDTr1ML+4MywiUOryc=
-github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
+basic.com/dbapi.git v0.0.0-20190523025708-eaf1da6b55de h1:tkAqiVXaBz8upBGGu60jExv0H5H7m2OWZdR8aTAJkp0=
+basic.com/dbapi.git v0.0.0-20190523025708-eaf1da6b55de/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
+basic.com/dbapi.git v0.0.0-20190523103034-c0d33072098b h1:gzr51BWE821BzyhRb0iiP5Wu/yXTkbfcz0BkzfjacMs=
+basic.com/dbapi.git v0.0.0-20190523103034-c0d33072098b/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
+basic.com/pubsub/protomsg.git v0.0.0-20190523080134-c2459cf7ffa7 h1:AmdkBGk95CJy0jMU2SJkQNgldpPCMyAifeAPxUngQsw=
+basic.com/pubsub/protomsg.git v0.0.0-20190523080134-c2459cf7ffa7/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190524044418-e6c6e5fdcdab h1:kTHZgvhdEJ+Vdbi1bBhKRA2oTYMhLZDqpWWk40yUd3s=
+basic.com/pubsub/protomsg.git v0.0.0-20190524044418-e6c6e5fdcdab/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190524072049-ce8c0f2b14dd h1:Z1KVegr3JrNHaJFAv6yRniNIWdvzLWBPkpBRnpzgnYg=
+basic.com/pubsub/protomsg.git v0.0.0-20190524072049-ce8c0f2b14dd/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/valib/deliver.git v0.0.0-20190522053509-c2bbe31e7c6c h1:nyclQo40lBhvt2LnsaG/tNyxuotKou0V67jL1jBcJfM=
+basic.com/valib/deliver.git v0.0.0-20190522053509-c2bbe31e7c6c/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY=
+github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
+github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/tmthrgd/go-sem v0.0.0-20160607101025-0214dbf53877 h1:n65+IT/xy5+trHm3Zpg9+j7IO4n8pBcPzvaKbMolW8U=
 github.com/tmthrgd/go-sem v0.0.0-20160607101025-0214dbf53877/go.mod h1:sgTk9wg3WurMlziuB3hcfgHYTz3pEkjQpSCTT8V2pW8=
 github.com/tmthrgd/go-shm v0.0.0-20170117044846-90afcfcd5ee9 h1:uVRQSWD6TOlWlLJ7IYYmbjRr0Xg35ADFN89HGQLPFGI=
 github.com/tmthrgd/go-shm v0.0.0-20170117044846-90afcfcd5ee9/go.mod h1:vy1jksyhzuQOMkHXMEi+X2bZ47ZeCn3QTnYdFBesABs=
 github.com/tmthrgd/shm-go v0.0.0-20170130075737-7207ca97b290 h1:5zW+TRr0WH4uN72/E/XYwb1PcaYN5BIB/FUbcQ0nHr0=
 github.com/tmthrgd/shm-go v0.0.0-20170130075737-7207ca97b290/go.mod h1:e9PZQr6zVezMTwj1v0j1YhGCNdS2zTCjXU9q9K+HHGk=
-golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be h1:mI+jhqkn68ybP0ORJqunXn+fq+Eeb4hHKqLQcFICjAc=
-golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5 h1:f005F/Jl5JLP036x7QIvUVhNTqxvSYwFIiyOh2q12iU=
+golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 nanomsg.org/go-mangos v1.4.0 h1:pVRLnzXePdSbhWlWdSncYszTagERhMG5zK/vXYmbEdM=
 nanomsg.org/go-mangos v1.4.0/go.mod h1:MOor8xUIgwsRMPpLr9xQxe7bT7rciibScOqVyztNxHQ=
diff --git a/main.go b/main.go
index 659b34f..776205f 100644
--- a/main.go
+++ b/main.go
@@ -1,7 +1,6 @@
 package main
 
 import (
-	"fmt"
 	"log"
 	"net/http"
 	_ "net/http/pprof"
@@ -11,24 +10,19 @@
 	//	"github.com/long/test/httpclient"
 	"github.com/long/test/sdk"
 	"github.com/long/test/tasktag"
-	//"time"
+	"time"
 )
 
 func main() {
 	// pprof 鐢ㄤ簬鍒嗘瀽鎬ц兘
 	go func() {
-		log.Println(http.ListenAndServe("192.168.1.124:6060", nil))
+		log.Println(http.ListenAndServe("192.168.1.123:6060", nil))
 	}()
 
 	sdk.Init()     //  鑾峰彇鎵�鏈夌畻娉昳d ,寤虹珛 sdk 涓婚锛� 寤虹珛sdk server(send, recv 杩愯)
 	tasktag.Init() // 鑾峰彇鎵�鏈変换鍔★紝寤虹珛浠诲姟鏍囩锛� 鍦ㄦ暟鎹繘鍏ユ椂锛� 鎵撴爣绛�
 	camera.Init()  //鑾峰彇cid, taskid, sdkid ,鍏崇郴
-
-	fmt.Println()
-	fmt.Println("===================================")
-	fmt.Println()
-
 	for {
+		time.Sleep(time.Second)
 	}
-
 }
diff --git a/protomsg/.gitignore b/protomsg/.gitignore
deleted file mode 100644
index 8365624..0000000
--- a/protomsg/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
diff --git a/protomsg/test.pb.go b/protomsg/test.pb.go
deleted file mode 100644
index a52baf2..0000000
--- a/protomsg/test.pb.go
+++ /dev/null
@@ -1,738 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: test.proto
-
-package protomsg
-
-import (
-	fmt "fmt"
-	io "io"
-	math "math"
-
-	proto "github.com/golang/protobuf/proto"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
-
-type TaskLabel struct {
-	Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
-	Sdkids               []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
-	Index                int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *TaskLabel) Reset()         { *m = TaskLabel{} }
-func (m *TaskLabel) String() string { return proto.CompactTextString(m) }
-func (*TaskLabel) ProtoMessage()    {}
-func (*TaskLabel) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0}
-}
-func (m *TaskLabel) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *TaskLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_TaskLabel.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *TaskLabel) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TaskLabel.Merge(m, src)
-}
-func (m *TaskLabel) XXX_Size() int {
-	return m.Size()
-}
-func (m *TaskLabel) XXX_DiscardUnknown() {
-	xxx_messageInfo_TaskLabel.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TaskLabel proto.InternalMessageInfo
-
-func (m *TaskLabel) GetTaskid() string {
-	if m != nil {
-		return m.Taskid
-	}
-	return ""
-}
-
-func (m *TaskLabel) GetSdkids() []string {
-	if m != nil {
-		return m.Sdkids
-	}
-	return nil
-}
-
-func (m *TaskLabel) GetIndex() int32 {
-	if m != nil {
-		return m.Index
-	}
-	return 0
-}
-
-type SdkMessage struct {
-	Cid                  string     `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
-	Tasklab              *TaskLabel `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
-	Data                 []byte     `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
-}
-
-func (m *SdkMessage) Reset()         { *m = SdkMessage{} }
-func (m *SdkMessage) String() string { return proto.CompactTextString(m) }
-func (*SdkMessage) ProtoMessage()    {}
-func (*SdkMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{1}
-}
-func (m *SdkMessage) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *SdkMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_SdkMessage.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *SdkMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SdkMessage.Merge(m, src)
-}
-func (m *SdkMessage) XXX_Size() int {
-	return m.Size()
-}
-func (m *SdkMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_SdkMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SdkMessage proto.InternalMessageInfo
-
-func (m *SdkMessage) GetCid() string {
-	if m != nil {
-		return m.Cid
-	}
-	return ""
-}
-
-func (m *SdkMessage) GetTasklab() *TaskLabel {
-	if m != nil {
-		return m.Tasklab
-	}
-	return nil
-}
-
-func (m *SdkMessage) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
-	proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
-}
-
-func init() { proto.RegisterFile("test.proto", fileDescriptor_c161fcfdc0c3ff1e) }
-
-var fileDescriptor_c161fcfdc0c3ff1e = []byte{
-	// 195 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2a, 0x49, 0x2d, 0x2e,
-	0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x00, 0x53, 0xb9, 0xc5, 0xe9, 0x4a, 0x81, 0x5c,
-	0x9c, 0x21, 0x89, 0xc5, 0xd9, 0x3e, 0x89, 0x49, 0xa9, 0x39, 0x42, 0x62, 0x5c, 0x6c, 0x25, 0x89,
-	0xc5, 0xd9, 0x99, 0x29, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x50, 0x1e, 0x48, 0xbc, 0x38,
-	0x25, 0x3b, 0x33, 0xa5, 0x58, 0x82, 0x49, 0x81, 0x19, 0x24, 0x0e, 0xe1, 0x09, 0x89, 0x70, 0xb1,
-	0x66, 0xe6, 0xa5, 0xa4, 0x56, 0x48, 0x30, 0x2b, 0x30, 0x6a, 0xb0, 0x06, 0x41, 0x38, 0x4a, 0x89,
-	0x5c, 0x5c, 0xc1, 0x29, 0xd9, 0xbe, 0xa9, 0xc5, 0xc5, 0x89, 0xe9, 0xa9, 0x42, 0x02, 0x5c, 0xcc,
-	0xc9, 0x70, 0x03, 0x41, 0x4c, 0x21, 0x5d, 0x2e, 0x76, 0x90, 0xb9, 0x39, 0x89, 0x49, 0x12, 0x4c,
-	0x0a, 0x8c, 0x1a, 0xdc, 0x46, 0xc2, 0x7a, 0x30, 0xe7, 0xe8, 0xc1, 0xdd, 0x12, 0x04, 0x53, 0x23,
-	0x24, 0xc4, 0xc5, 0x92, 0x92, 0x58, 0x92, 0x08, 0xb6, 0x83, 0x27, 0x08, 0xcc, 0x76, 0x12, 0x38,
-	0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x67, 0x3c, 0x96, 0x63,
-	0x48, 0x62, 0x03, 0x1b, 0x61, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x45, 0xc6, 0x2c, 0xfc, 0xe6,
-	0x00, 0x00, 0x00,
-}
-
-func (m *TaskLabel) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *TaskLabel) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Taskid) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintTest(dAtA, i, uint64(len(m.Taskid)))
-		i += copy(dAtA[i:], m.Taskid)
-	}
-	if len(m.Sdkids) > 0 {
-		for _, s := range m.Sdkids {
-			dAtA[i] = 0x12
-			i++
-			l = len(s)
-			for l >= 1<<7 {
-				dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
-				l >>= 7
-				i++
-			}
-			dAtA[i] = uint8(l)
-			i++
-			i += copy(dAtA[i:], s)
-		}
-	}
-	if m.Index != 0 {
-		dAtA[i] = 0x18
-		i++
-		i = encodeVarintTest(dAtA, i, uint64(m.Index))
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
-	}
-	return i, nil
-}
-
-func (m *SdkMessage) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *SdkMessage) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Cid) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintTest(dAtA, i, uint64(len(m.Cid)))
-		i += copy(dAtA[i:], m.Cid)
-	}
-	if m.Tasklab != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintTest(dAtA, i, uint64(m.Tasklab.Size()))
-		n1, err1 := m.Tasklab.MarshalTo(dAtA[i:])
-		if err1 != nil {
-			return 0, err1
-		}
-		i += n1
-	}
-	if len(m.Data) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintTest(dAtA, i, uint64(len(m.Data)))
-		i += copy(dAtA[i:], m.Data)
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
-	}
-	return i, nil
-}
-
-func encodeVarintTest(dAtA []byte, offset int, v uint64) int {
-	for v >= 1<<7 {
-		dAtA[offset] = uint8(v&0x7f | 0x80)
-		v >>= 7
-		offset++
-	}
-	dAtA[offset] = uint8(v)
-	return offset + 1
-}
-func (m *TaskLabel) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Taskid)
-	if l > 0 {
-		n += 1 + l + sovTest(uint64(l))
-	}
-	if len(m.Sdkids) > 0 {
-		for _, s := range m.Sdkids {
-			l = len(s)
-			n += 1 + l + sovTest(uint64(l))
-		}
-	}
-	if m.Index != 0 {
-		n += 1 + sovTest(uint64(m.Index))
-	}
-	if m.XXX_unrecognized != nil {
-		n += len(m.XXX_unrecognized)
-	}
-	return n
-}
-
-func (m *SdkMessage) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Cid)
-	if l > 0 {
-		n += 1 + l + sovTest(uint64(l))
-	}
-	if m.Tasklab != nil {
-		l = m.Tasklab.Size()
-		n += 1 + l + sovTest(uint64(l))
-	}
-	l = len(m.Data)
-	if l > 0 {
-		n += 1 + l + sovTest(uint64(l))
-	}
-	if m.XXX_unrecognized != nil {
-		n += len(m.XXX_unrecognized)
-	}
-	return n
-}
-
-func sovTest(x uint64) (n int) {
-	for {
-		n++
-		x >>= 7
-		if x == 0 {
-			break
-		}
-	}
-	return n
-}
-func sozTest(x uint64) (n int) {
-	return sovTest(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (m *TaskLabel) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowTest
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: TaskLabel: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: TaskLabel: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Taskid", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthTest
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthTest
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Taskid = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Sdkids", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthTest
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthTest
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Sdkids = append(m.Sdkids, string(dAtA[iNdEx:postIndex]))
-			iNdEx = postIndex
-		case 3:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
-			}
-			m.Index = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.Index |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		default:
-			iNdEx = preIndex
-			skippy, err := skipTest(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthTest
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthTest
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *SdkMessage) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowTest
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: SdkMessage: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: SdkMessage: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthTest
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthTest
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Cid = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Tasklab", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthTest
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthTest
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Tasklab == nil {
-				m.Tasklab = &TaskLabel{}
-			}
-			if err := m.Tasklab.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthTest
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthTest
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
-			if m.Data == nil {
-				m.Data = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipTest(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthTest
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthTest
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func skipTest(dAtA []byte) (n int, err error) {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return 0, ErrIntOverflowTest
-			}
-			if iNdEx >= l {
-				return 0, io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		wireType := int(wire & 0x7)
-		switch wireType {
-		case 0:
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				iNdEx++
-				if dAtA[iNdEx-1] < 0x80 {
-					break
-				}
-			}
-			return iNdEx, nil
-		case 1:
-			iNdEx += 8
-			return iNdEx, nil
-		case 2:
-			var length int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowTest
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				length |= (int(b) & 0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if length < 0 {
-				return 0, ErrInvalidLengthTest
-			}
-			iNdEx += length
-			if iNdEx < 0 {
-				return 0, ErrInvalidLengthTest
-			}
-			return iNdEx, nil
-		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowTest
-					}
-					if iNdEx >= l {
-						return 0, io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					innerWire |= (uint64(b) & 0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				innerWireType := int(innerWire & 0x7)
-				if innerWireType == 4 {
-					break
-				}
-				next, err := skipTest(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-				if iNdEx < 0 {
-					return 0, ErrInvalidLengthTest
-				}
-			}
-			return iNdEx, nil
-		case 4:
-			return iNdEx, nil
-		case 5:
-			iNdEx += 4
-			return iNdEx, nil
-		default:
-			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
-		}
-	}
-	panic("unreachable")
-}
-
-var (
-	ErrInvalidLengthTest = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowTest   = fmt.Errorf("proto: integer overflow")
-)
diff --git a/protomsg/test.proto b/protomsg/test.proto
deleted file mode 100644
index 774a81e..0000000
--- a/protomsg/test.proto
+++ /dev/null
@@ -1,14 +0,0 @@
-syntax = "proto3";
-package protomsg;
-
-message TaskLabel {
-	string taskid = 1;
-	repeated string sdkids = 2;
-	int32 index = 3 ;
-}
-
-message SdkMessage {
-	string cid = 1;
-	TaskLabel tasklab = 2;
-	bytes	data =3 ;
-}
diff --git a/sdk/sdk.go b/sdk/sdk.go
index 19fcec1..9a4715f 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -5,17 +5,25 @@
 	"errors"
 	"fmt"
 
-	"github.com/long/test/httpclient"
-	"github.com/long/test/protomsg"
+//	"github.com/long/test/httpclient"
 	"github.com/long/test/tasktag"
 	"github.com/long/test/util"
 
 	"github.com/golang/protobuf/proto"
-	"github.com/long/test/deliver"
+
+	"basic.com/valib/deliver.git"
+	"basic.com/pubsub/protomsg.git"
+    "basic.com/dbapi.git"
 )
 
-//var doOnce sync.Once
+const (
+    postPull="_1.ipc"
+    postPush="_2.ipc"
+)
+
 var SocketManage = make(map[string]SocketContext)
+
+var sdkapi dbapi.SdkApi
 
 type SocketContext struct {
 	Sock    deliver.Deliver
@@ -25,32 +33,27 @@
 
 func Init() {
 
+    fmt.Println("============= init sdk info =====================")
 	sdklist := SdkAll() //鑾峰彇鎵�鏈塻dk
-	fmt.Println("sdk list have: ", sdklist)
-
 	SdkCreateTopic(sdklist) // 鍒涘缓涓婚
 
 	for _, sdkid := range sdklist { // 鍒涘缓sdk server
-		url := fmt.Sprintf("%s%d", "tcp://192.168.1.124:", UrlPort)
+        url := fmt.Sprintf("ipc:///tmp/%s%s",sdkid,postPull)
 		sdkidser, socketser, err := NewSdkSocketListen(deliver.PushPull, sdkid, url)
 		if err != nil {
 			continue
 		}
-		UrlPort++
 		go Send(sdkidser, socketser, SdkMap[sdkid])
 
-		url = fmt.Sprintf("%s%d", "tcp://192.168.1.124:", UrlPortR)
+        url = fmt.Sprintf("ipc:///tmp/%s%s",sdkid,postPush)
 		_, socketdial, err := NewSdkSocketListen(deliver.PushPull, sdkid, url)
 		if err != nil {
 			continue
 		}
-		UrlPortR++
 		go Recv(socketdial)
 
 	}
-
 	go es(SdkMap["es"])
-
 }
 
 //鍗曠嫭澶勭悊   es 涓婚鐨勬儏鍐�
@@ -58,7 +61,6 @@
 	for _ = range sdkmsgchan {
 		fmt.Println("this data is finish all sdk! ")
 	}
-
 }
 
 //鍔ㄦ�佸鐞�
@@ -92,7 +94,6 @@
 		sdkmsg.Tasklab = nil
 		return sdkmsg
 	}
-
 	sdkmsg.Tasklab = tasktag.TaskMapLab[taskid]
 	sdkmsg.Data = data
 	return sdkmsg
@@ -105,15 +106,14 @@
 	} else {
 		sdksend = "es"
 	}
-	fmt.Println()
 	fmt.Println("鍒嗗彂鐨勪富棰樻槸锛� ", sdksend)
-	fmt.Println()
 	return
 }
 
 // 璋冪敤  http 鍊熷彛鑾峰彇鎽勫儚鏈轰俊鎭�
 func SdkAll() (sdklist []string) {
-	sdklist = httpclient.GetSdk("http://127.0.0.1:8000/data/api-v/sdk/findskdid")
+	//sdklist = httpclient.GetSdk("http://192.168.1.124:8000/data/api-v/sdk/findskdid")
+    sdklist = sdkapi.GetAllSdkIds()
 	return
 }
 
@@ -130,8 +130,6 @@
 	return nil
 }
 
-var UrlPort = 9000
-var UrlPortR = 9500
 
 // create server
 func NewSdkSocketListen(mode int, sdkid string, url string) (sid string, socket SocketContext, err error) {
@@ -216,6 +214,7 @@
 
 			fmt.Println("send len of data: ", len(data))
 			if err := socket.Sock.Send(data); err != nil {
+                fmt.Println(socket.Sock)
 				fmt.Println("failed send")
 				continue
 			}
diff --git a/tasktag/tasktag.go b/tasktag/tasktag.go
index 24fb853..0bc06ce 100644
--- a/tasktag/tasktag.go
+++ b/tasktag/tasktag.go
@@ -2,26 +2,33 @@
 
 import (
 	"fmt"
-
-	"github.com/long/test/protomsg"
+	"basic.com/pubsub/protomsg.git"
+    "basic.com/dbapi.git"
 )
 
-var TaskMapLab = make(map[string]*protomsg.TaskLabel)
+var TaskMapLab = make(map[string] *protomsg.TaskLabel)
+var taskapi dbapi.TaskApi
 
-//
 func Init() {
+
+    fmt.Println("=========== tasktag info ====================")
 	var tls []protomsg.TaskLabel
 
-	sdk1 := "812b674b-2375-4589-919a-5c1c3278a972"
-	sdk2 := "812b674b-2375-4589-919a-5c1c3278a971"
-
-	task1 := protomsg.TaskLabel{Taskid: "5b0902ae-b1bd-43c0-816d-0a87f1f859d1", Sdkids: []string{sdk1, sdk2}, Index: int32(0)}
-	tls = append(tls, task1)
-
-	task2 := protomsg.TaskLabel{Taskid: "5b0902ae-b1bd-43c0-816d-0a87f1f859d2", Sdkids: []string{sdk1}, Index: int32(0)}
-	tls = append(tls, task2)
+     taskSdks := taskapi.FindAll()
+     for _, taskSdk := range taskSdks {
+         fmt.Println("test:    ", taskSdk)
+         var tl  protomsg.TaskLabel
+         tl.Taskid = taskSdk.Task.Taskid
+         for _, sdkinfo := range taskSdk.Sdks {
+             tl.Sdkids = append(tl.Sdkids, sdkinfo.Id)
+         }
+         fmt.Println(tl)
+         tl.Index=int32(0)
+         tls = append(tls, tl)
+     }
 
 	GenTasklab(tls)
+
 	for key, value := range TaskMapLab {
 		fmt.Println()
 		fmt.Println(key, value)
@@ -32,6 +39,7 @@
 //浠� taskid 浣滀负key, 瀵瑰簲鐨勭畻娉曠粍鍚堜綔涓� value
 func GenTasklab(tasklab []protomsg.TaskLabel) {
 	for _, value := range tasklab {
-		TaskMapLab[value.Taskid] = &value
+        pv := value
+    	TaskMapLab[value.Taskid] = &pv  
 	}
 }
diff --git a/test b/test
index 39e985c..29dd7aa 100755
--- a/test
+++ b/test
Binary files differ

--
Gitblit v1.8.0