Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edenreich/long-polling
An intuitive and clean way to write long-polling applications
https://github.com/edenreich/long-polling
Last synced: about 4 hours ago
JSON representation
An intuitive and clean way to write long-polling applications
- Host: GitHub
- URL: https://github.com/edenreich/long-polling
- Owner: edenreich
- License: mit
- Created: 2018-03-25T15:56:25.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-04-14T12:30:53.000Z (over 6 years ago)
- Last Synced: 2024-04-19T11:22:12.788Z (7 months ago)
- Language: PHP
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 htmlFor the PHP file you can use composer:
```sh
composer require reich/longpolling
```# Usage
On the server side you need to listen for changes with the following code snippet:
```php
\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:
```html
``````javascript
(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 += '
}
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 :)