   (send! [_ data blocking]
     (throw (UnsupportedOperationException. "Unsuporded arity for async connection.")))
   (recv! [_ blocking]
-    (throw (UnsupportedOperationException. "Unsuporded arity for async connection.")))
-  (send-bytes! [_ data blocking]
     (throw (UnsupportedOperationException. "Unsuporded arity for async connection.")))
   (recv-bytes! [_ blocking]
     (throw (UnsupportedOperationException. "Unsuporded arity for async connection."))))

    (.subscribe s pattern))
  (unsubscribe! [_ pattern]
    (.unsubscribe s pattern))
  (send-bytes! [_ data]
    (let [ch (chan)
          cb (make-iasynccallback ch)]
      (.sendBytes px cb)
      ch))
  (recv-bytes! [_]
    (let [ch (chan)
          cb (make-iasynccallback ch)]

  (unsubscribe! [_ pattern] "Unsubscribe current socket from specified topic.")
  (send! [_ data] [_ data blocking] "Send string using a socket.")
  (recv! [_] [_ blocking] "Receive string using a socket.")
  (recv-bytes! [_] [_ blocking] "Receive bytes using socket.")
  (close! [_] "Close a socket."))

