From a7e2f175b4797172237eb8ce1990c4b4e210eb6c Mon Sep 17 00:00:00 2001 From: NoiseByNorthwest Date: Wed, 26 Jun 2013 11:55:04 +0200 Subject: [PATCH] Adds connection manager (= global connection pool) to avoid duplicate connections to the same host when dealing with multiple nsqphp objects --- src/nsqphp/Connection/ConnectionManager.php | 19 +++++++++++++++++ src/nsqphp/nsqphp.php | 23 +++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 src/nsqphp/Connection/ConnectionManager.php diff --git a/src/nsqphp/Connection/ConnectionManager.php b/src/nsqphp/Connection/ConnectionManager.php new file mode 100644 index 0000000..4640ac2 --- /dev/null +++ b/src/nsqphp/Connection/ConnectionManager.php @@ -0,0 +1,19 @@ +connectionTimeout, - $this->readWriteTimeout, - $this->readWaitTimeout, - FALSE, // blocking - array($this, 'connectionCallback') - ); + $conn = $cm->find($h); + if (!$conn) { + $conn = new Connection\Connection( + $parts[0], + isset($parts[1]) ? $parts[1] : NULL, + $this->connectionTimeout, + $this->readWriteTimeout, + $this->readWaitTimeout, + FALSE, // blocking + array($this, 'connectionCallback') + ); + $cm->add($conn); + } $this->pubConnectionPool->add($conn); }