package profile import ( "context" "demo/deliver" "fmt" ) const dLen = 32 * 1024 * 1024 func pusher(ctx context.Context, d deliver.Deliver, index int) { var err error buf := make([]byte, dLen) for { select { case <-ctx.Done(): return default: if err = d.Send(buf); err != nil { // fmt.Printf("%d can't send message on push socket: %s\n", index, err.Error()) } else { fmt.Printf("%d send msg length %d\n", index, len(buf)) } } } } func Push(ctx context.Context, server bool, ipc string, count int) { if server { d := deliver.NewServer(deliver.PushPull, ipc) go pusher(ctx, d, 0) } else { var cs []deliver.Deliver for i := 0; i < count; i++ { c := deliver.NewClient(deliver.PushPull, ipc) cs = append(cs, c) go pusher(ctx, c, i) } } }