zhangmeng
2019-05-17 9893edc6dda92601c81b249967384f6626abc272
nng.go
@@ -20,6 +20,15 @@
   "nanomsg.org/go-mangos/transport/all"
)
// type deliver
type td int
const (
   producer = td(iota)
   consumer
   star //mangos bus protocol
)
// NNG mangos wrap
type NNG struct {
   sock   mangos.Socket
@@ -34,7 +43,7 @@
func (n *NNG) Send(data []byte) error {
   var err error
   if n.sock == nil {
      n.sock, err = n.makeNNG(true)
      n.sock, err = n.makeNNG(producer)
      if err != nil {
         fmt.Println("create nng producer error")
         return err
@@ -56,7 +65,7 @@
   var err error
   if n.sock == nil {
      n.sock, err = n.makeNNG(false)
      n.sock, err = n.makeNNG(consumer)
      if err != nil {
         fmt.Println("create nng consumer error")
         return nil, err
@@ -102,18 +111,20 @@
}
func proto(producer bool, m Mode) protocol {
   if producer {
func proto(typ td, m Mode) protocol {
   if typ == producer {
      return protoProducer(m)
   } else if typ == consumer {
      return protoConsumer(m)
   }
   return protoConsumer(m)
}
func (n *NNG) makeNNG(producer bool) (mangos.Socket, error) {
func (n *NNG) makeNNG(typ td) (mangos.Socket, error) {
   var sock mangos.Socket
   var err error
   if sock, err = newSocket(proto(producer, n.mode)); err != nil {
   if sock, err = newSocket(proto(typ, n.mode)); err != nil {
      return nil, err
   }