refact
+isSocket