소스 검색

hxd.net.Socket: fix nodejs server not closed

Yuxiao Mao 7 달 전
부모
커밋
6fe1cebf6d
1개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 8 2
      hxd/net/Socket.hx

+ 8 - 2
hxd/net/Socket.hx

@@ -37,6 +37,7 @@ class Socket {
 	var s : hl.uv.Stream;
 	#elseif (nodejs && hxnodejs)
 	var s : js.node.net.Socket;
+	var srv : js.node.net.Server;
 	#end
 	public var out(default, null) : SocketOutput;
 	public var input(default, null) : SocketInput;
@@ -105,7 +106,7 @@ class Socket {
 			throw e;
 		}
 		#elseif (nodejs && hxnodejs)
-		js.node.Net.createServer(function(sock) {
+		srv = js.node.Net.createServer(function(sock) {
 			var s = new Socket();
 			s.s = sock;
 			s.s.on('error', function(e) {
@@ -119,7 +120,8 @@ class Socket {
 		}).on('error', function(e) {
 			close();
 			onError(e);
-		}).listen(port, host, listenCount);
+		});
+		srv.listen(port, host, listenCount);
 		#else
 		throw "Not implemented";
 		#end
@@ -139,6 +141,10 @@ class Socket {
 			out = new SocketOutput();
 			s = null;
 		}
+		if( srv != null ) {
+			srv.close();
+			srv = null;
+		}
 		#end
 	}