作者 邓超

增加代理

@@ -36,7 +36,7 @@ class ProxyService @@ -36,7 +36,7 @@ class ProxyService
36 SWOOLE_SOCK_TCP//|SWOOLE_SSL 36 SWOOLE_SOCK_TCP//|SWOOLE_SSL
37 ); 37 );
38 $server->set([ 38 $server->set([
39 - 'dispatch_mode' => 2 // 固定模式 39 + 'dispatch_mode' => 2 // 固定模式
40 ]); 40 ]);
41 //监听连接进入事件。 41 //监听连接进入事件。
42 $server->on('Connect', function ($server, $fd) { 42 $server->on('Connect', function ($server, $fd) {
@@ -51,18 +51,20 @@ class ProxyService @@ -51,18 +51,20 @@ class ProxyService
51 if(empty($this->clients[$fd])){ 51 if(empty($this->clients[$fd])){
52 $this->clients[$fd] = new SmtpClient(); 52 $this->clients[$fd] = new SmtpClient();
53 } 53 }
  54 +
  55 + $client = $this->clients[$fd];
54 // 加锁 56 // 加锁
55 - $this->clients[$fd]->lock(); 57 + $client->lock();
56 // 处理数据 58 // 处理数据
57 - $result = $this->clients[$fd]->exec($data); 59 + $result = $client->exec($data);
58 // 解锁 60 // 解锁
59 - $this->clients[$fd]->unlock(); 61 + $client->unlock();
60 // 返回结果 62 // 返回结果
61 $server->send($fd, $this->push($result[1])); 63 $server->send($fd, $this->push($result[1]));
62 // 是否关闭连接 64 // 是否关闭连接
63 if($result[0]===false){ 65 if($result[0]===false){
64 // 关闭并释放资源 66 // 关闭并释放资源
65 - $this->clients[$fd]->close(); 67 + $client->close();
66 $this->clients[$fd] = null; 68 $this->clients[$fd] = null;
67 unset($this->clients[$fd]); 69 unset($this->clients[$fd]);
68 70
@@ -73,6 +75,7 @@ class ProxyService @@ -73,6 +75,7 @@ class ProxyService
73 //监听连接关闭事件。 75 //监听连接关闭事件。
74 $server->on('Close', function ($server, $fd) { 76 $server->on('Close', function ($server, $fd) {
75 echo '连接关闭了 => '.$fd."\n"; 77 echo '连接关闭了 => '.$fd."\n";
  78 + $this->clients[$fd] = null;
76 unset($this->clients[$fd]); 79 unset($this->clients[$fd]);
77 }); 80 });
78 81