From 6a1121ab2e91a362ed1e13e18c44fca40761f97a Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Mon, 30 Jan 2012 23:19:43 +0100
Subject: [PATCH] provide server side close option for EventStream

---
 core/js/eventsource.js | 7 ++++++-
 lib/eventsource.php    | 7 +++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/core/js/eventsource.js b/core/js/eventsource.js
index 422f97657b..30b942f59e 100644
--- a/core/js/eventsource.js
+++ b/core/js/eventsource.js
@@ -44,8 +44,13 @@ OC.EventSource=function(src){
 		$('body').append(this.iframe);
 		this.useFallBack=true;
 		OC.EventSource.iframeCount++
-
 	}
+	//add close listener
+	this.listen('__internal__',function(data){
+		if(data=='close'){
+			this.close();
+		}
+	}.bind(this));
 }
 OC.EventSource.fallBackSources=[];
 OC.EventSource.iframeCount=0;//number of fallback iframes
diff --git a/lib/eventsource.php b/lib/eventsource.php
index c123eb4b83..b0450ff3d5 100644
--- a/lib/eventsource.php
+++ b/lib/eventsource.php
@@ -70,4 +70,11 @@ class OC_EventSource{
 		echo PHP_EOL;
 		flush();
 	}
+
+	/**
+	 * close the connection of the even source
+	 */
+	public function close(){
+		$this->send('__internal__','close');//server side closing can be an issue, let the client do it
+	}
 }
\ No newline at end of file
-- 
GitLab