 			{
 				propertyNames.add(key);
 			}
-
-			refreshAllProxyColumns();
+		}
+
+		private function onMessage(event:/*/MessageEvent/*/Object):void
+		{
+			var str:String = event.data;
+			var message:Object = JSON.parse(str);
+
+			if (message is Array)
+			{
+				message.forEach(addRecord);
+			}
+			else
+			{
+				addRecord(message);
+			}
+
+			Weave.getCallbacks(this).triggerCallbacks();
 		}
 
 		public function getPropertyNames():Array/*/<string>/*/

		//public const selectionFeedback:LinkableBoolean = Weave.linkableChild(this, LinkableBoolean);
		public const url:LinkableString = Weave.linkableChild(this, LinkableString, onUrlChange);


		private function onSelectionFilterChange():void
		{

			_socket = null;
		}

		private function addRecord(record:Object):void
		{
			if ((records.length == keepLast.value) && (keepLast.value > 0))
			{
				records.shift();
