reich/longpolling

An intuitive and clean way to write long-polling applications

v1.0 2018-03-25 22:59 UTC

This package is not auto-updated.

Last update: 2024-05-07 15:11:13 UTC


README

68747470733a2f2f73372e706f7374696d672e63632f3731686b653175617a2f6c6f6e67706f6c6c696e672e6a7067

Long-Polling

A intuitive and clean way to write long-polling applications

Installation

For the javascript module: Simply import src/js/LongPolling.js into your project and embed in the html

For the PHP file you can use composer:

composer require reich/longpolling

Usage

On the server side you need to listen for changes with the following code snippet:

\Reich\PHP\LongPolling::check(1000, function() {
	// we are inside a continuing loop,
	// return some data to the client.
	// Only if the data has been changed / modified 
	// the client will recieve the changes.
});

Here we are checking every second for data changes, if the returned value was not changed, then nothing will happend. If the data infact changed, the client will recieve the new data.

On the client side using javascript we need to set a listener for recieving the changed data:

<div id="recipes">
	<!-- Loading the modified recipes from the server -->
</div>
	(function(LongPolling) {

		LongPolling.get('server.php').subscribe(function(recipes) {
			var recipes = JSON.parse(recipes);
			
			var div = document.getElementById('recipes');
			var output = '';

			for (var recipe in recipes) {
				output += '<li>Recipe: '+recipe+', Price: '+recipes[recipe]+'</li>'; 
			}
			
			div.innerHTML = output;
		});

	})(LongPolling);

Notes

This technik is used by many big platforms such as facebook, twitter and many other rich internet applications out there.

It is very simple concept, yet very powerful. Now our users do not need to refresh their browser for changes :)